Pächterwechsel Muster

Standardmäßig verfügen Apps, die über das Azure-Portal erstellt wurden, über einen global eindeutigen App-ID-URI, der für die App-Erstellung festgelegt ist, Aber Sie können diesen Wert ändern. Wenn der Name Ihres Mandanten beispielsweise contoso.onmicrosoft.com wurde, wird ein gültiger App-ID-URI contoso.onmicrosoft.com/myapp. Wenn Ihr Mandant über eine verifizierte Domäne mit contoso.com verfügt, wird auch ein gültiger App-ID-URI contoso.com/myapp. Wenn der App-ID-URI diesem Muster nicht folgt, schlägt das Festlegen einer Anwendung als Multi-Tenant fehl. Diese Studie hat gezeigt, dass es Situationen gibt, in denen die Kombination von mehr als einem Multitenancy-Muster besser geeignet ist, um die Isolierung zwischen Mietern zu implementieren. Wie das Ergebnis einer Fallstudie mit kontinuierlicher Integration zeigte, hat sich der CPU-Verbrauch der Mandanten für die gemeinsam genutzte Komponente erheblich verändert. Daher kann die erste Phase des Builds eine dedizierte Komponente verwenden, während die zweite Phase des Builds die freigegebene Komponente verwenden kann. Daher können Builds oder Commits für ein Repository in einem kontinuierlichen Integrationsprozess so konfiguriert werden, dass sie gleichzeitig oder in regelmäßigen Abständen ausgeführt werden. Das Ausführen solcher Builds als langer vollständiger Integrationsbuild in einer langsamen Netzwerkumgebung kann viel Zeit und Ressourcen in Anspruch nehmen. Um ein hohes Maß an Isolation zu erreichen und gleichzeitig eine effiziente Ressourcennutzung zu gewährleisten, kann der Integrationsbuild in zwei verschiedene Phasen unterteilt werden, sodass (i) die erste Phase einen Commit-Build erstellt, der das Fehlen kritischer Fehler kompiliert und überprüft, wenn jeder Entwickler Änderungen am Hauptentwicklungsstrom feststellt, und (ii) die zweite Phase sekundäre Builds erstellt, um langsame und weniger wichtige Tests auszuführen [59]. Dadurch wird sichergestellt, dass sekundäre Builds nicht viele Ressourcen verbrauchen, und selbst wenn sie fehlschlagen, wirkt sich dies nicht auch auf andere Mandanten aus. Ein weiteres verfügbares Muster besteht darin, viele Mandanten in einer Datenbank mit mehreren Mandanten zu speichern. Die Anwendungsinstanz kann über eine beliebige Anzahl von Datenbanken mit mehreren Mandanten verfügen.

Das Schema einer Datenbank mit mehreren Mandanten muss über eine oder mehrere Mandantenbezeichnerspalten verfügen, damit die Daten eines bestimmten Mandanten selektiv abgerufen werden können. Darüber hinaus erfordert das Schema möglicherweise einige Tabellen oder Spalten, die nur von einer Teilmenge von Mandanten verwendet werden. Statische Code- und Referenzdaten werden jedoch nur einmal gespeichert und von allen Mandanten gemeinsam genutzt. Mehrinstanzenanwendungen sind in der Regel erforderlich, um ein hohes Maß an Anpassung bereitzustellen, um die Anforderungen jeder Zielorganisation zu erfüllen. Die Anpassung umfasst in der Regel die folgenden Aspekte: Was sind die Bereitstellungskompromisse, um den erforderlichen Grad an Mandantenisolation für unsere drei Fallstudien zu erreichen? Die Kompromisse zwischen Mandantenisolation und Geschäftsanforderungen sind ein wichtiger Aspekt bei der Architektur des Entwurfs und der Bereitstellung von Cloud-gehosteten Diensten. Da der Isolationsgrad von oben nach unten zunimmt, verringert sich die Leichtigkeit und Flexibilität bei der Implementierung von Geschäftsanforderungen, die auf Anwendungsebene nicht kompensiert werden können. Die gemeinsam genutzte Komponente, die einen geringen Isolationsgrad bietet, kann verwendet werden, um geschäftsanforderungen zu erfüllen, die auf Anwendungsebene kompensiert werden können. Beispiele für solche Geschäftsanforderungen sind Leistung und Verfügbarkeit. Der Architekt kann die Anwendungsarchitektur des GSD-Tools problemlos ändern, um diese Art von Anforderung zu erfüllen. Bestimmte delegierte Berechtigungen erfordern auch die Zustimmung eines Mandantenadministrators.

Beispielsweise erfordert die Möglichkeit, als angemeldeter Benutzer in Azure AD zurückzuschreiben, die Zustimmung eines Mandantenadministrators. Wenn ein normaler Benutzer versucht, sich bei einer Anwendung anzumelden, die eine delegierte Berechtigung anfordert, die die Zustimmung des Administrators erfordert, erhält Ihre Anwendung einen Fehler, wenn nur App-Berechtigungen ersucht werden. Ob eine Berechtigung die Zustimmung des Administrators erfordert, wird vom Entwickler bestimmt, der die Ressource veröffentlicht hat, und kann in der Dokumentation für die Ressource gefunden werden. Die Berechtigungsdokumentation für die Microsoft Graph-API gibt an, welche Berechtigungen die Zustimmung des Administrators erfordern.