Christoph Vollmann

Azure, Office 365 and SharePoint from a consultant perspective

Export your Azure inventory as CSV files

You can always use the Azure portal to export all your resources to one CSV file (Use the “All resources” blade and then click “Export to CSV”).

Script for exporting your inventory

Or you can use this script to export your Azure inventory. It builds different CSV files for each subscription with resources.

After downloading open your favorite PowerShell and type

.\Get-AzureInventory.ps1

Marketplace resources vs. CSP contracts

It also creates a CSV file thats contains only your marketplace items. This is most useful if you change your Azure contract model.

For example you switch from your EA/SCE or Pay-As-You-Go to a CSP contract then some of the marketplace resources aren’t available yet in CSP.

So you can send your CSP provider this files to give them an overview about your Azure environment and then discuss with them if all your resources will be available.

Download

Download ZIP file

or view the repository on GitHub:
https://github.com/cloudchristoph/AzureInventory

I’ve tested this with:

  • PowerShell 5.1
  • PowerShell 6.0 Core
  • Azure Az Module Version 3.3.0

Don’t hesitate to contact me if you have questions or ideas for this script.

What are the default security settings for an Azure VNet?

My client has asked me in our workshop:

What are the default security settings for an Azure VNet?

On an Azure VNet you cannot initially apply things like a Network Security Group, only things like allowed services (via Service endpoints or Private endpoints). So there are no default security settings except those that Microsoft itself always applies (e.g. DDoS Protection).

However, each VNet consists of at least one subnet. Network Security Groups (NSGs) can (and should) then be applied at the subnet level.

Whats a Network Security Group?

An NSG contains security rules in the form of a 5-tuple ACL.
So you define source IP (or IP range), destination IP (or IP range), source port, destination port and protocol (TCP or UPD). Furthermore you define the action – Allow or Deny.

The order is determined by priority. Higher priority (lower number) means that the rule will beat a rule with lower priority.

What are the default rules?

Default Network Security Group rules

For outgoing connections you’ll find these rules:

  • Allow any outgoing connections to other resources in the same VNet
  • Allow any outgoing connections to the Internet
  • Everything else outgoing? Deny

For incoming connections you’ll find these rules:

  • Allow any incoming connections from other resources in the same VNet
  • Allow any connections from Azure Load Balancer probes
  • Everything else incoming? Deny

“Unwritten rule” – Port 25

Port 25 (used for sending Emails over SMTP) is blocked by default if you’re not on an EA contract or your agreement was made after November 2017. If you want to send Mails from your VMs over Port 25, you’ll have to open a support case at Microsoft.
Why does this rule exist? I think that Microsoft wants to prevent spambots from running in Azure on a large scale and messing up the entire IP address space.

Should I adjust these default rules?

It depends (of course). For example, if you don’t want your resources in this VNet to communicate directly with the Internet, you have to adapt this rule.
Very often a rule is also set up that opens the RDP port for Windows or SSH for Linux. For this you should rather use modern methods like Azure Bastion or Just-in-time Access.

Learn more

Microsoft Docs about Network Security Groups

4 useful sites for your next Azure Workshop

Besides the Azure Portal of course, there are some useful and nicely done websites that I use during my workshops. Maybe they are also helpful for your next meeting.

Azure Charts

This site from Alexey Polkovnikov gives you a great overview over all Azure services and their latest updates. At this moment the region comparison tool is very useful to me. I use it for example to show my customers what services are still missing in the new Germany datacenters compared to West Europe.

Azure Speed

If my customers asking me about the “best” Azure region for they workloads from their location, i’ll open up Azure Speed and then discuss with them.

azureprice.net

When talking about different prices for the same service in each region, I’m opening azureprice.net/region and show them the difference in VM pricing.

AAD Application Proxy Port Check

“Are we ready for AAD App Proxy?” – Start with checking the connections from your designated server. It’s a nice starting point. 

If you have more useful sites, let me know!

SharePoint 2016 Feature Pack 1: Aktivieren des modernen OneDrive for Business

Nach der Installation des Feature Pack 1 für SharePoint 2016 hatte sich mein Kunde auf eine frische OneDrive Oberfläche für seine Nutzer gefreut. Doch Pustekuchen. Er sah weiterhin das klassische OneDrive.

Um die neue Version zu aktivieren, halfen drei einfache Zeilen PowerShell:

$farm = Get-SPFarm
$farm.OneDriveUserExperienceVersion = [Microsoft.SharePoint.Administration.OneDriveUserExperienceVersion]::Version2
$farm.Update()

Im Vergleich das alte OneDrive:

Und hier das neue OneDrive:

Wichtiger Hinweis: Nicht jeder darf dieses Feature aktivieren

Sie brauchen einen Microsoft-Vertrag mit aktiver Software Assurance für SharePoint, während Sie dieses Feature aktivieren. Sollten Sie also Ihre SharePoint Server Lizenzen ohne Software Assurance erworben haben, dürfen Sie das moderne OneDrive also nicht aktivieren bzw. müssen es deaktivieren (im o.g. Skript einfach [Microsoft.SharePoint.Administration.OneDriveUserExperienceVersion]::Version1 eintragen).

Referenz: https://technet.microsoft.com/en-us/library/mt790696(v=office.16).aspx

WordPress-Blog in die SharePoint Suche integrieren

SharePoint hat wohl eine der mächtigsten Suchengines am Markt. Nicht nur eine Einbindung von Quellen wie der SharePoint Farm selbst oder der internen Dateifreigabe in die Suche macht Sinn. Auch externe Quellen lassen sich bestens integrieren.

Zwei Möglichkeiten stehen dafür zur Wahl: Entweder man indexiert die Quelle selber mit Hilfe der SharePoint Suche, oder das “externe System” beherrscht den OpenSearch Standard.

WordPress ist ein solches System, welches diesen Standard unterstützt. Um WordPress Blogs in die SharePoint Suche zu integrieren, sind folgende Schritte sinnvoll:

Anlage einer neuen Ergebnisquelle

Erster Schritt ist die Anlage einer neuen Ergebnisquelle. Dies ist über die Zentraladministration möglich.

  1. Auswahl der Suchdienstanwendung in der Dienstanwendungsübersicht
  2. In der Suchdienstanwendung auf “Ergebnisquellen” klicken und “Neue Ergebnisquelle” wählen
  3. Folgende Daten sind zu ergänzen:
    1. Name:
      Ein passender Name für den Blog (Ich habe einfach nur “Blog” gewählt)
    2. Protokoll:
      OpenSearch 1.0/1.1
    3. Abfragetransformation:
      {searchTerms}
    4. Quell-URL – Hier wird es wichtig:
      Für WordPress nimmt man die Blog-URL und hängt “/feed/?s={searchTerms}” an.
      Für diesen Blog also:

       https://christoph.vollmann.co/feed/?s={searchTerms}

      {searchTerms} wird später durch den Suchbegriff durch SharePoint ersetzt. Die URL kann man natürlich vorher testen. Einfach {searchTerms} durch einen Begriff ersetzen und im Browser aufrufen: https://christoph.vollmann.co/feed/?s=SharePoint

    5. Anmeldeinformationen:
      Sollte der Blog aus dem Netz ohne Login erreichbar sein, reicht hier ein “Anonym: Diese Quelle erfordert keine Authentifizierung.”
  4. Das Ganze speichern. Im Ergebnis sollte es jetzt eine neue Quelle unter “Für diesen Suchdienst definiert” geben:

Erstellung einer neuen Ergebnisseite im Suchcenter

Um diese Quelle nun zu nutzen stehen zwei Wege zur Verfügung. Weg Eins ist es, diese Quelle als neue Ergebnisseite im Suchcenter bereit zu stellen.

Dafür wechselt man in das gewünschte Suchcenter und geht dort in die Websiteinhalte in die Bibliothek “Seiten”.

In der Bibliothek erstellt man eine neue “Willkommenseite” mit dem gewünschten Namen (das Seitenlayout in einem Suchcenter ist immer “Suchergebnisse” – genau das was wir wollen)

Die neue Seite erscheint in der Bibliothek und kann jetzt bearbeitet werden:

Konfiguration der neuen Ergebnisseite

 

Im Bearbeitungsmodus passt man jetzt den WebPart “Suchergebnisse” an:

 

Im WebPart-Menü wählt man “Abfrage ändern”:

Im Dialogfeld wählt man nun unter “Wählen Sie eine Abfrage aus” die neue Quelle, Speichert die WebPart-Konfiguration und speichert dann die Seite ab:

Test

Nach Eingabe eines Begriffs sollten nun Ergebnisse aus dem Blog erscheinen:

Einbindung in die Suchnavigation

Nach Anlage der neuen Suchergebnisseite wechselt man nun in die Websiteeinstellungen auf “Sucheinstellungen”:

Dort kann die Navigation im Suchcenter unter “Suchnavigation konfigurieren” und “Hyperlink hinzfügen” erweitert werden:

Das Ergebnis

Die Suchergebnisseite steht nun allen Nutzern zur Verfügung um Blog-Ergebnisse zu finden.

Ein Suchbegriff, der einen Nutzer zum Bereich “Alles” führt, wird übernommen, wenn er auch “Blog” klickt.

Einbindung von Ergebnissen in die Standard-Suche

Zusätzlich zu eigenen Ergebnisseite kann diese Quelle auch in die normalen Suchergebnisse integriert werden.

Dazu erscheint bald ein eigener Artikel.

Unterschiede bei der Einbindung mit OpenSearch und eigener Indexierung

Ein Hinweis ist mir noch wichtig: Die SharePoint Suche indexiert bei dieser Methode die Inhalte des externen Blogs nicht!

Die Suche schickt die Anfrage an den Suchdienst von WordPress. Das heißt einerseits, dass keinerlei Platz für den Index der Inhalte auf SharePoint Seite vorgesehen werden muss, aber andererseits die Qualität der Ergebnisse auch vollständig von der externen Quelle abhängig sind.

Kurz: Wenn die OpenSearch-Schnittstelle Schrott-Ergebnisse liefert, dann kann SharePoint auch nur Schrott-Ergebnisse verarbeiten und anzeigen.

« Older posts

© 2020 Christoph Vollmann

Theme by Anders NorenUp ↑