Enterprise Applications Enterprise Applications

Referenz für Gallery-Apps, SSO, Provisioning, Zugriff und Betrieb von Enterprise Applications. Reference for gallery apps, SSO, provisioning, access, and operations of enterprise applications.

Katalog Catalog

Gallery-Apps bringen vorkonfigurierte Vorlagen mit, Non-Gallery-Apps sind flexibel für Eigenbau oder seltene SaaS-Lösungen. Gallery apps provide prebuilt templates, while non-gallery apps are flexible for custom or uncommon SaaS solutions.

SSO SSO

Enterprise Applications bündeln SAML, OIDC, Password SSO, Linked Sign-On und Access Policies in einer tenant-lokalen Instanz. Enterprise applications combine SAML, OIDC, password SSO, linked sign-on, and access policies in a tenant-local instance.

Provisioning Provisioning

SCIM ermöglicht automatisiertes Erstellen, Aktualisieren und Deaktivieren von Konten in Zielsystemen. SCIM enables automated creation, update, and deprovisioning of accounts in target systems.

Zugriff Access

Benutzer- und Gruppenzuweisungen, Self-Service und Consent bestimmen, wer die Anwendung verwenden darf. User and group assignment, self-service, and consent determine who may use the application.

Enterprise Applications im Überblick Enterprise applications overview

Enterprise Applications repräsentieren die tenant-lokale Instanz einer Anwendung. Hier werden Zuweisungen, Single Sign-On, Provisioning, Conditional Access, Consent, Nutzungsberichte und Application Proxy konfiguriert. Enterprise applications represent the tenant-local instance of an application. This is where assignments, single sign-on, provisioning, Conditional Access, consent, usage reports, and Application Proxy are configured.

Einordnung Positioning

Für die Entwicklung startest du meist bei App Registrations. Für Betrieb, Zuweisung und SSO im Tenant arbeitest du überwiegend in Enterprise Applications. For development, you usually start in App Registrations. For tenant-side operations, assignment, and SSO, you mainly work in Enterprise Applications.

Kriterium Criterion Gallery App Gallery app Non-Gallery App Non-gallery app
Vorlage Template Vorkonfiguriert durch Microsoft oder den Anbieter Preconfigured by Microsoft or the vendor Manuell aufgebaut Built manually
SSO-Assistent SSO wizard Oft vollständig geführt Often fully guided Konfiguration eigenständig Self-configured
Provisioning Provisioning Häufig mit SCIM-Template Often includes SCIM template Endpoint- und Mapping-Details manuell Endpoints and mappings are manual
Branding Branding Logo und Beschreibung vorhanden Logo and description available Eigene Pflege nötig Requires own maintenance
Use Case Use case Bekannte SaaS-Anbieter Common SaaS vendors Custom, line-of-business, niche apps Custom, line-of-business, niche apps

SSO-Methoden SSO methods

Enterprise Applications unterstützen mehrere SSO-Modelle. Die Auswahl hängt davon ab, ob die Ziel-App föderierbar ist, moderne Standards unterstützt oder nur ein gespeichertes Passwort kennt. Enterprise applications support several SSO models. The right choice depends on whether the target app can federate, supports modern standards, or only supports stored credentials.

Methode Method Geeignet für Best for Stärken Strengths Grenzen Limitations
SAML SAML Klassische SaaS- und Enterprise-Apps Classic SaaS and enterprise apps Reif, weit verbreitet, claims-basiert Mature, widespread, claims-based Mehr XML und Zertifikatsmanagement More XML and certificate management
OIDC / OAuth OIDC / OAuth Moderne Web- und API-Apps Modern web and API apps Einfachere Tokens, moderne Flows Simpler tokens, modern flows Benötigt App-seitige OIDC-Unterstützung Requires OIDC support in the app
Password SSO Password SSO Legacy-Web-Anwendungen Legacy web applications Keine App-Änderung nötig No app changes needed Gespeicherte Zugangsdaten, weniger elegant Stored credentials, less elegant
Linked Linked Externe Login-Seite ohne Föderation External sign-in page without federation Benutzer erleben Portalstart Users start from the portal Kein echtes SSO Not true SSO

SAML Deep Dive SAML deep dive

SAML-Konfiguration besteht aus Vertrauensdaten und Attributen. Entscheidend sind Entity ID/Identifier, Reply URL (ACS), ggf. Sign-on URL, Claim-Regeln und das Signaturzertifikat. SAML configuration consists of trust data and attributes. Key settings are the Entity ID/Identifier, Reply URL (ACS), optional sign-on URL, claim rules, and the signing certificate.

Einstellung Setting Bedeutung Meaning Typischer Fehler Typical pitfall
Identifier (Entity ID) Identifier (Entity ID) Eindeutige Kennung der SP-Anwendung Unique identifier of the service provider Passt nicht zur Erwartung der App Does not match the app expectation
Reply URL (ACS) Reply URL (ACS) Empfänger der SAML Response Recipient of the SAML response Falscher Pfad oder HTTP/HTTPS-Mix Wrong path or HTTP/HTTPS mismatch
Sign-on URL Sign-on URL Optionaler Einstiegspunkt Optional launch URL Verwechselt mit ACS Confused with ACS
Logout URL Logout URL Optionaler SLO-Endpunkt Optional SLO endpoint App unterstützt kein Single Logout App does not support single logout
NameID NameID Hauptidentifikator des Benutzers Primary identifier for the user Format oder Wert falsch Wrong format or value
Claims Claims Zusätzliche Attribute wie email oder groups Additional attributes such as email or groups Falsche Quellattribute Incorrect source attributes
Signing Certificate Signing certificate Entra signiert Assertionen Entra signs assertions Ablauf nicht überwacht Expiry not monitored
Metadata XML Metadata XML Import/Export des Vertrauens Import/export of trust Nach Änderung nicht neu importiert Not reimported after changes
PowerShell PowerShell
            
                # Claims Mapping Policy Beispiel für SAML-ähnliche Anpassungen
                $body = @{
                  definition = @(
                    '{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true","ClaimsSchema":[{"Source":"user","ID":"userprincipalname","JwtClaimType":"name"}]}}'
                  )
                  displayName = "SampleClaimsPolicy"
                } | ConvertTo-Json -Depth 5
                
                Invoke-MgGraphRequest -Method POST `
                  -Uri "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies" `
                  -Body $body `
                  -ContentType "application/json"
                        
            
        

Benutzer- und Gruppenzuweisung User and group assignment

Mit der Option Assignment required steuerst du, ob nur explizit zugewiesene Benutzer und Gruppen die Anwendung starten dürfen. Das ist wichtig für sensible Anwendungen, Testphasen und saubere Lizenzsteuerung. The Assignment required option controls whether only explicitly assigned users and groups may launch the application. This is important for sensitive applications, pilot phases, and clean license control.

PowerShell PowerShell
            
                $sp = Get-MgServicePrincipal -Filter "displayName eq 'Contoso HR App'"
                $group = Get-MgGroup -Filter "displayName eq 'HR-App-Users'"
                
                New-MgGroupAppRoleAssignment `
                  -GroupId $group.Id `
                  -PrincipalId $group.Id `
                  -ResourceId $sp.Id `
                  -AppRoleId ([Guid]::Empty)
                        
            
        

SCIM Provisioning SCIM provisioning

SCIM koppelt den Lebenszyklus von Entra-Benutzern mit Konten im Zielsystem. Typisch sind Create, Update, Disable und Group Push. Vor dem Go-Live sollten Attribute, Matching-Regeln und Deprovisioning-Verhalten in einem Pilot validiert werden. SCIM links the lifecycle of Entra users with accounts in the target system. Typical operations are create, update, disable, and group push. Before go-live, validate attributes, matching rules, and deprovisioning behavior in a pilot.

SCIM Attribut SCIM attribute Quelle in Entra Source in Entra Hinweis Note
userName userName userPrincipalName oder mail userPrincipalName or mail Primärer Match-Key Primary matching key
active active accountEnabled accountEnabled False deaktiviert Konto im Ziel False disables the target account
displayName displayName displayName displayName Für UI und Reports For UI and reports
name.givenName name.givenName givenName givenName Vorname First name
name.familyName name.familyName surname surname Nachname Last name
emails[type eq "work"].value emails[type eq "work"].value mail mail Geschäftliche Hauptadresse Primary work address
department department department department Für Rollen oder Routing For roles or routing
externalId externalId objectId oder employeeId objectId or employeeId Stabiler Match-Wert Stable matching value
manager manager manager manager Nicht jede App unterstützt Manager Not every app supports manager
groups groups App-relevante Gruppen App-relevant groups Nur nutzen, wenn Zielsystem Gruppen versteht Use only if the target supports groups
Provisioning Logs prüfen Review provisioning logs

Der häufigste Fehler sind falsche Matching-Attribute oder SCIM-Endpoints, die HTTP 401, 403 oder 409 zurückgeben. Prüfe jeden Status im Provisioning Log vor dem Rollout. The most common issues are incorrect matching attributes or SCIM endpoints returning HTTP 401, 403, or 409. Review every status in the provisioning log before rollout.

PowerShell PowerShell
            
                $sp = Get-MgServicePrincipal -Filter "displayName eq 'Contoso HR App'"
                
                Invoke-MgGraphRequest -Method GET `
                  -Uri "https://graph.microsoft.com/beta/servicePrincipals/$($sp.Id)/synchronization/jobs"
                        
            
        

Application Proxy Application Proxy

Application Proxy veröffentlicht interne Web-Anwendungen sicher über Entra ID. Der Connector baut ausgehend eine Verbindung zu Microsoft auf, sodass keine eingehenden Firewall-Öffnungen in der DMZ erforderlich sind. Application Proxy securely publishes internal web applications through Entra ID. The connector establishes an outbound connection to Microsoft, so no inbound firewall openings in the DMZ are required.

Komponente Component Aufgabe Role Hinweis Note
Connector Connector Verbindet internes Netz mit dem Cloud-Dienst Bridges the internal network to the cloud service Mehrere Connectoren für HA Use multiple connectors for HA
Connector Group Connector group Ordnet Apps einem Connector-Set zu Assigns apps to a connector set Hilfreich für Region oder Segmentierung Useful for region or segmentation
External URL External URL Öffentliche Adresse für Benutzer Public URL for users Kann Custom Domain nutzen Can use a custom domain
Internal URL Internal URL Ursprünglicher Zielendpunkt Original target endpoint Muss vom Connector erreichbar sein Must be reachable by the connector
Pre-Authentication Pre-authentication Entra ID oder Passthrough Entra ID or Passthrough Entra ID bevorzugen Prefer Entra ID

Self-Service Access Self-service access

Self-Service erlaubt Benutzern das Anfordern von Zugriff aus dem MyApps-Portal. In Verbindung mit Genehmigern, Ablauf und Access Reviews eignet sich das für Standard-SaaS-Lösungen mit nachvollziehbarer Governance. Self-service lets users request access from the MyApps portal. Combined with approvers, expiration, and access reviews, it works well for standard SaaS solutions with traceable governance.

Unter Properties steuerst du Sichtbarkeit, Assignment requirement und Benutzerzugriff. Tenantweite Consent Settings entscheiden zusätzlich, ob Benutzer Drittanbieter-Apps oder nur verifizierten Publishern zustimmen dürfen. Under Properties, you control visibility, assignment requirement, and user access. Tenant-wide consent settings additionally determine whether users may consent to third-party apps or only to verified publishers.

Eigenschaft Property Wirkung Effect Praxis Operational guidance
Visible to users Visible to users Anzeige in MyApps Displayed in MyApps Für Backend-Only-Apps oft deaktivieren Often disable for backend-only apps
Assignment required Assignment required Nur zugewiesene Benutzer dürfen starten Only assigned users may start Für sensible Apps aktivieren Enable for sensitive apps
Enabled for users to sign in Enabled for users to sign in Globale Startfreigabe Global sign-in permission Bei Incident Response temporär deaktivieren Temporarily disable during incident response
Notes Notes Betriebsdokumentation Operational documentation Owner, Kontakt, SLA dokumentieren Document owner, contact, SLA

Usage Reports und Monitoring Usage reports and monitoring

Report Report Frage Question answered Nutzung Operational use
Sign-ins Sign-ins Wer hat sich angemeldet? Who signed in? Fehleranalyse und Adoption Failure analysis and adoption
Audit Logs Audit logs Wer hat Konfiguration geändert? Who changed configuration? Change Review Change review
Provisioning Logs Provisioning logs Welche Konten wurden erstellt oder deaktiviert? Which accounts were created or disabled? SCIM Monitoring SCIM monitoring
App usage App usage Wird die App noch aktiv genutzt? Is the app still actively used? App Cleanup App cleanup
Conditional Access Insights Conditional Access insights Welche Policies wirken? Which policies apply? Zugriffsvalidierung Access validation

PowerShell + Graph PowerShell + Graph

PowerShell PowerShell
            
                # Enterprise App finden
                $sp = Get-MgServicePrincipal -Filter "displayName eq 'Contoso HR App'"
                
                # Wichtige Eigenschaften anzeigen
                $sp | Select-Object Id, AppId, DisplayName, ServicePrincipalType, AccountEnabled
                
                # Anwendungszugriff temporär sperren
                Update-MgServicePrincipal -ServicePrincipalId $sp.Id -AccountEnabled:$false
                
                # Notes per Graph aktualisieren
                $body = @{ notes = "Owner: Identity Team; Review: quarterly" } | ConvertTo-Json
                Invoke-MgGraphRequest -Method PATCH `
                  -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$($sp.Id)" `
                  -Body $body `
                  -ContentType "application/json"
                        
            
        

SAML KomplettreferenzComplete SAML reference

SAML-basierte Enterprise Apps leben von präzisen Claims, konsistenten Zertifikaten und sauberem NameID-Design. Die folgende Referenz konzentriert sich auf Request-/Response-Struktur, Claim-Transformationen und Gruppenverhalten.SAML-based enterprise apps depend on precise claims, consistent certificates, and clean NameID design. The following reference focuses on request/response structure, claim transformations, and group behavior.

SAML SequenzSAML sequence
Browser -> Service Provider: unauthenticated request
Service Provider -> Browser: redirect or POST with SAMLRequest
Browser -> Entra ID: SAMLRequest, RelayState
Entra ID -> User: sign-in, MFA, Conditional Access
Entra ID -> Browser: SAMLResponse, RelayState, signature
Browser -> Service Provider: POST assertion to ACS endpoint
Service Provider -> Browser: application session established
ElementElement BedeutungMeaning HinweisNote
SAMLRequestSAMLRequest AuthnRequest des Service Providers mit Issuer, ACS URL und ggf. NameIDPolicy.AuthnRequest from the service provider with issuer, ACS URL, and optionally NameIDPolicy. Bei HTTP-Redirect meist deflated/base64url codiert.Often deflated/base64 encoded on HTTP-Redirect.
SAMLResponseSAMLResponse Antwort mit Assertion, Conditions, Audience, AttributeStatement und Signatur.Response containing assertion, conditions, audience, AttributeStatement, and signature. Zeitfenster und Audience exakt prüfen.Validate time windows and audience precisely.
RelayStateRelayState Anwendungszustand oder Ziel-URL.Application state or target URL. Nicht als Vertrauensanker verwenden.Do not use as the trust anchor.

NameID FormateNameID formats

FormatFormat VerwendungUse KommentarComment
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress Klassische SaaS-AppsClassic SaaS apps Einfach, aber bei Mail-Änderungen instabil.Simple, but unstable if mail changes.
urn:oasis:names:tc:SAML:2.0:nameid-format:persistenturn:oasis:names:tc:SAML:2.0:nameid-format:persistent Langfristig stabile ZuordnungLong-term stable mapping Bevorzugt bei Anwendungen mit eigener Identitätshaltung.Preferred for applications maintaining long-lived identities.
urn:oasis:names:tc:SAML:2.0:nameid-format:transienturn:oasis:names:tc:SAML:2.0:nameid-format:transient Kurzlebige SitzungenShort-lived sessions Gut für Privacy-sensitive Anwendungen.Good for privacy-sensitive apps.
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified Viele Legacy-Galerie-AppsMany legacy gallery apps Nur nutzen, wenn das Zielsystem es verlangt.Use only when the target system requires it.
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedNameurn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName Windows-/AD-nahe AppsWindows/AD-centric apps Meist für ältere On-Prem-Systeme.Mostly for older on-prem systems.
urn:oasis:names:tc:SAML:2.0:nameid-format:entityurn:oasis:names:tc:SAML:2.0:nameid-format:entity FederationsobjekteFederation entities Selten in Enduser-SaaS.Rare in end-user SaaS.

Signaturzertifikate verwaltenManage signing certificates

BereichArea Best PracticeBest practice WarumWhy
Aktives ZertifikatActive certificate Vor Ablauf überwachen und Notifikationen ernst nehmen.Monitor before expiry and treat notifications seriously. Verhindert Produktionsausfälle.Prevents production outages.
Next CertificateNext certificate Vorab veröffentlichen, wenn der Service Provider mehrere Zertifikate akzeptiert.Pre-publish when the service provider accepts multiple certificates. Ermöglicht überlappende Rotation.Enables overlapping rotation.
Metadaten-AktualisierungMetadata update Federation Metadata URL regelmäßig neu einlesen.Refresh federation metadata URL regularly. Automatisiert Key Rollovers.Automates key rollovers.
TestingTesting Vor Umschalten Login im Test- und Produktpfad prüfen.Validate login in both test and production paths before switching. Vermeidet Überraschungen im ACS-Handling.Avoids surprises in ACS handling.

SAML Claim-TransformationenSAML claim transformations

TransformationTransformation NutzenBenefit BeispielExample
JoinJoin Mehrere Werte in einen Claim zusammenführen.Combine multiple values into one claim. givenName + ' ' + surnamegivenName + ' ' + surname
ExtractMailPrefixExtractMailPrefix Alias aus Mailadresse ableiten.Derive an alias from the email address. user@contoso.com -> useruser@contoso.com -> user
ToLowercaseToLowercase Case normalisieren.Normalize case. MAIL -> mailMAIL -> mail
ToUppercaseToUppercase Legacy-Systeme mit Uppercase bedienen.Support legacy systems requiring uppercase. de -> DEde -> DE
RegexReplaceRegexReplace Strukturierte Umschreibung.Structured rewrite. contoso\\(.*) -> $1contoso\\(.*) -> $1
PrefixPrefix Konstante Präfixe setzen.Set constant prefixes. ID- + employeeIdID- + employeeId
SuffixSuffix Konstante Suffixe setzen.Set constant suffixes. user + @legacyuser + @legacy
IfEmptyIfEmpty Fallback-Werte liefern.Provide fallback values. mail else userPrincipalNamemail else userPrincipalName
ConstantConstant Statische Claim-Werte.Static claim values. tenant=EMEAtenant=EMEA
ContainsContains Claims nur bei bestimmten Eingaben setzen.Emit claims only for specific inputs. Department contains HRDepartment contains HR
FormatStringFormatString Vorlagenbasierte Strings.Template-based strings. {0}-{1}{0}-{1}
ReplaceReplace Teilstrings austauschen.Replace substrings. @old -> @new@old -> @new

Benutzerattribute und ClaimsUser attributes and claims

QuelleSource SAML ClaimSAML claim BeschreibungDescription
user.userprincipalnameuser.userprincipalname NameID / http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameNameID / http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name Standard-LoginnameDefault sign-in name
user.mailuser.mail http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddresshttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress E-Mail-AdresseEmail address
user.givennameuser.givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname VornameGiven name
user.surnameuser.surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname NachnameSurname
user.displaynameuser.displayname displayNamedisplayName AnzeigenameDisplay name
user.departmentuser.department departmentdepartment AbteilungDepartment
user.jobtitleuser.jobtitle jobtitlejobtitle StellenbezeichnungJob title
user.employeeiduser.employeeid employeeidemployeeid PersonalnummerEmployee ID
user.objectiduser.objectid http://schemas.microsoft.com/identity/claims/objectidentifierhttp://schemas.microsoft.com/identity/claims/objectidentifier Objekt-IDObject ID
user.usertypeuser.usertype userTypeuserType Mitglied oder GastMember or guest
user.onpremisessamaccountnameuser.onpremisessamaccountname onPremisesSamAccountNameonPremisesSamAccountName sAMAccountName aus ADsAMAccountName from AD
user.onpremisessecurityidentifieruser.onpremisessecurityidentifier onPremisesSecurityIdentifieronPremisesSecurityIdentifier Windows SIDWindows SID
user.countryuser.country countrycountry LandCountry
user.cityuser.city citycity StadtCity
user.stateuser.state statestate Bundesland/RegionState/region
user.streetaddressuser.streetaddress streetAddressstreetAddress StraßeStreet
user.postalcodeuser.postalcode postalCodepostalCode PostleitzahlPostal code
user.telephonenumberuser.telephonenumber telephoneNumbertelephoneNumber TelefonnummerTelephone number
user.extensionattribute1user.extensionattribute1 extensionAttribute1extensionAttribute1 Freies Attribut 1Custom attribute 1
user.extensionattribute2user.extensionattribute2 extensionAttribute2extensionAttribute2 Freies Attribut 2Custom attribute 2
user.extensionattribute3user.extensionattribute3 extensionAttribute3extensionAttribute3 Freies Attribut 3Custom attribute 3
user.extensionattribute4user.extensionattribute4 extensionAttribute4extensionAttribute4 Freies Attribut 4Custom attribute 4
user.extensionattribute5user.extensionattribute5 extensionAttribute5extensionAttribute5 Freies Attribut 5Custom attribute 5

Mehrwertige Gruppenclaims und FilterMulti-valued group claims and filtering

OptionOption EffektEffect KommentarComment
Alle GruppenAll groups Große Assertions und mögliches Overage-Risiko.Large assertions and possible overage risk. Nur bei wenigen Gruppen sinnvoll.Suitable only for users with few groups.
SicherheitsgruppenSecurity groups Reduziert Rauschen gegenüber M365-Gruppen.Reduces noise compared to M365 groups. Gute Voreinstellung für SaaS-Autorisierung.Good default for SaaS authorization.
Der App zugewiesene GruppenGroups assigned to the app Nur relevante Gruppen werden emittiert.Only relevant groups are emitted. Bevorzugte Option für Token-Größe.Preferred option for token size.
Gruppenfilter nach Anzeigename/AttributGroup filtering by display name/attribute Nur fachlich relevante Gruppenclaims.Only business-relevant group claims. Regelmäßig gegen Namensänderungen prüfen.Review regularly against naming changes.

SCIM 2.0 Deep DiveSCIM 2.0 deep dive

SCIM Provisioning verbindet Entra ID mit Zielsystemen über standardisierte Ressourcen wie /Users und /Groups. Erfolgreiche Provisionierung hängt dabei weniger vom Protokoll als von sauberem Mapping, Scope und Monitoring ab.SCIM provisioning connects Entra ID with target systems through standardized resources such as /Users and /Groups. Successful provisioning depends less on the protocol itself than on clean mappings, scope, and monitoring.

BereichArea KernaussageKey point PraxisPractice
SCIM RessourcenSCIM resources Users, Groups und PATCH sind die Kernobjekte.Users, Groups, and PATCH are the core objects. Schema früh mit dem Vendor abgleichen.Align the schema with the vendor early.
Provisioning AgentProvisioning agent Für einige On-Prem-Apps ist der lokale Agent nötig.Some on-prem apps require the local agent. Outbound-Erreichbarkeit und Servicekonto planen.Plan outbound reachability and the service account.
Attribut-MappingsAttribute mappings Mappingfehler sind die häufigste Fehlerquelle.Mapping errors are the most common source of failures. Immer Testbenutzer mit Extremwerten nutzen.Always use test users with edge-case values.

Mapping-AusdrückeMapping expressions

SyntaxSyntax NutzenUse BeispielExample
IIF(condition, trueValue, falseValue)IIF(condition, trueValue, falseValue) Bedingte ZuweisungConditional mapping IIF(IsPresent([mail]), [mail], [userPrincipalName])IIF(IsPresent([mail]), [mail], [userPrincipalName])
Switch(value, default, case1, result1,...)Switch(value, default, case1, result1,...) MehrfachauswahlMulti-branch mapping Switch([department], "General", "HR", "Human Resources", "IT", "Technology")Switch([department], "General", "HR", "Human Resources", "IT", "Technology")
Append(a,b)Append(a,b) Strings verkettenAppend strings Append([givenName], " ")Append([givenName], " ")
Join(";", [proxyAddresses])Join(";", [proxyAddresses]) Mehrwerte zusammenführenJoin multi-values Join(";", [memberOf])Join(";", [memberOf])
IgnoreFlowIfNullOrEmpty(value)IgnoreFlowIfNullOrEmpty(value) Leere Werte unterdrückenSuppress empty values IgnoreFlowIfNullOrEmpty([employeeId])IgnoreFlowIfNullOrEmpty([employeeId])
Replace(value, old, new)Replace(value, old, new) Zeichen ersetzenReplace characters Replace([userPrincipalName], "@contoso.com", "@fabrikam.com")Replace([userPrincipalName], "@contoso.com", "@fabrikam.com")
ToLower(value)ToLower(value) KleinbuchstabenLowercase ToLower([mailNickname])ToLower([mailNickname])
ToUpper(value)ToUpper(value) GroßbuchstabenUppercase ToUpper([country])ToUpper([country])
Left(value, length)Left(value, length) Linker TeilstringLeft substring Left([employeeId], 4)Left([employeeId], 4)
Right(value, length)Right(value, length) Rechter TeilstringRight substring Right([employeeId], 4)Right([employeeId], 4)
Mid(value, start, length)Mid(value, start, length) Mittlerer TeilstringMid substring Mid([userPrincipalName], 1, 5)Mid([userPrincipalName], 1, 5)
NormalizeDiacritics(value)NormalizeDiacritics(value) Umlaute und Akzente normalisierenNormalize accents NormalizeDiacritics([displayName])NormalizeDiacritics([displayName])
StripSpaces(value)StripSpaces(value) Leerzeichen entfernenStrip spaces StripSpaces([employeeId])StripSpaces([employeeId])
CStr(value)CStr(value) In String umwandelnCast to string CStr([employeeNumber])CStr([employeeNumber])

Provisioning Scope und AusführungProvisioning scope and execution

ThemaTopic BeschreibungDescription HinweisNote
ScopeScope Nur zugewiesene Benutzer/Gruppen oder alle passenden Objekte provisionieren.Provision only assigned users/groups or all matching objects. Mit kleinem Pilot beginnen.Start with a small pilot.
On-demand ProvisioningOn-demand provisioning Einzelobjekte ad hoc testen und Logs sofort prüfen.Test single objects ad hoc and inspect logs immediately. Bestes Werkzeug für Mapping-Debugging.Best tool for mapping debugging.
QuarantineQuarantine Wiederholte Fehler versetzen die App in Quarantäne.Repeated failures place the app in quarantine. Root Cause beheben und erst dann fortsetzen.Fix the root cause before resuming.

Logs analysierenAnalyze logs

LogtypLog type FrageQuestion Typischer BefundTypical finding
Provisioning LogsProvisioning logs Wurde ein Objekt erstellt, aktualisiert oder übersprungen?Was an object created, updated, or skipped? Attribut fehlt, Zielsystem lehnt Wert ab, Duplikat erkannt.Attribute missing, target rejects value, duplicate detected.
Audit LogsAudit logs Wer hat Mapping oder Scope geändert?Who changed mapping or scope? Portaländerungen und Admin-Aktionen.Portal changes and admin actions.
Target LogsTarget logs Kam der PATCH/POST sauber an?Did the PATCH/POST arrive correctly? 400/409 wegen Format oder Eindeutigkeit.400/409 due to format or uniqueness.
SCIM PATCH BeispielSCIM PATCH example
PATCH /scim/v2/Users/2819c223-7f76-453a-919d-413861904646
Content-Type: application/scim+json

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "Replace",
      "path": "active",
      "value": true
    },
    {
      "op": "Replace",
      "path": "name.givenName",
      "value": "Alex"
    }
  ]
}

Application Proxy Deep DiveApplication Proxy deep dive

Application Proxy ermöglicht den sicheren externen Zugriff auf interne Webanwendungen, ohne eingehende Firewall-Freigaben für die Anwendung selbst. Entscheidend sind Connector-Platzierung, Pre-Authentication und Backend-SSO.Application Proxy enables secure external access to internal web applications without inbound firewall openings for the application itself. Connector placement, pre-authentication, and backend SSO are the key design points.

BereichArea EmpfehlungRecommendation WarumWhy
ArchitekturArchitecture Connectoren nah an Backend und nah an DC/KDC platzieren.Place connectors close to the backend and close to DC/KDC resources. Reduziert Latenz und KCD-Probleme.Reduces latency and KCD problems.
Connector GroupsConnector groups Pro Anwendung oder Zone passende Gruppen bilden.Create connector groups per application or zone. Erleichtert HA und Routing.Simplifies HA and routing.
HAHA Mindestens zwei Connectoren pro kritischer Gruppe.At least two connectors per critical group. Einzelserver dürfen kein SPOF sein.Single servers must not be a SPOF.
Custom Domains/TLSCustom domains/TLS Öffentliche Zertifikate, DNS und Backend-URL sauber abstimmen.Align public certificates, DNS, and the backend URL cleanly. Verhindert Mixed-Host- oder Cookie-Probleme.Prevents mixed-host or cookie issues.

Pre-Authentication und Backend-SSOPre-authentication and backend SSO

ThemaTopic OptionenOptions KommentarComment
Pre-AuthenticationPre-authentication Entra ID oder PassthroughEntra ID or passthrough Entra ID ist für MFA und Conditional Access meist vorzuziehen.Entra ID is usually preferable for MFA and Conditional Access.
Backend-SSOBackend SSO Header-basiert, Passwortvault, Kerberos Constrained DelegationHeader-based, password vault, Kerberos Constrained Delegation Von der Altanwendung abhängig.Depends on the legacy application.
KCDKCD SPN, Delegation, Connector-Computerobjekt und Browser-URL müssen zusammenpassen.SPN, delegation, connector computer object, and browser URL must align. Häufigste Fehlerquelle bei Windows Integrated Auth.Most common failure point for Windows Integrated Auth.
KCD PrüfschritteKCD validation steps
setspn -Q HTTP/app.internal.contoso.com
setspn -Q HTTP/app.contoso.com

# Connector-Computerobjekt in AD für constrained delegation prüfen
# Check the connector computer object in AD for constrained delegation

Invoke-WebRequest https://app.contoso.com -UseBasicParsing
FehlerbildSymptom PrüfungCheck LösungResolution
404 oder 502404 or 502 Connector erreicht Backend nicht oder Pfad falsch.Connector cannot reach backend or path is wrong. Backend-URL, DNS und Firewall prüfen.Check backend URL, DNS, and firewall.
Login-LoopLogin loop Cookies, Header Rewrite, Reply URLs und Host Header prüfen.Review cookies, header rewrite, reply URLs, and host headers. Custom Domain und Backend-Host konsistent halten.Keep custom domain and backend host consistent.
Kerberos FailureKerberos failure SPN, Delegation, Zeit und KDC-Erreichbarkeit prüfen.Check SPN, delegation, time sync, and KDC reachability. KCD-Konfiguration korrigieren.Fix the KCD configuration.
Langsame AntwortSlow response Connector-Auslastung und Platzierung prüfen.Check connector load and placement. Mehr Connectoren oder andere Gruppe verwenden.Use more connectors or another group.