Direkt zum Hauptbereich

Claims Based Authentication to Classic Mode Authentication

Ich habe mich dieser Tage damit beschäftigen müssen die Authentifizierung einer SharePoint-Webanwendung umzustellen. Ich werde mich hier nicht weiter um die Beschreibung der Authentifizierungsmethoden kümmern, das wurde auf blogs.msdn.com von Russ Maxwell bereits erfolgreich und verständlich getan.

Ich habe nun das folgende Szenario:
Es läuft eine Webanwendung mit der Claims-Based-Authentication Methode. Diese Webanwendung muss auf Classic Mode Authentifizierung umgestellt werden. Zuerst ändern wir die Webanwendung einfach von Claims Based auf Classic Mode. Da wir hier nicht die Möglichkeit haben die Änderungen über die UI zu machen greifen wir auf die wunderbaren SharePoint-2010 cmdlets zurück ;-)

$web = Get-SPWebApplication http://MyWebApplication
$web.UseClaimsAuthentication = 0
$web.Update()
$web.ProvisionGlobally()

Nun überprüfen wir noch, ob die Änderungen auch gegriffen haben:

$web = Get-SPWebApplication http://MyWebApplication
$web.UseClaimsAuthentication

Als Ergebnis wird uns ein "false" zurückgeliefert, also die Webanwendung läuft jetzt wieder unter Classic Mode Authentifizierung. Als Benutzer erhält man nun einen "Access denied", Grund dafür sind die Claims der Benutzer (wir werden nicht als gültiger Benutzer authentifiziert), diese müssen nun noch entfernt/rückgängig gemacht werden.
Wenn man sich dann mal die verfügbaren Methoden zum Migrieren der Benutzer ansieht (msdn.microsoft.com) sollte es doch recht einfach sein. Wenn es jedoch wirklich so einfach wäre, dann müsste ich hier nicht weiter darauf eingehen :-)

Wenn wir den folgenden Befehl ausführen:

$web = Get-SPWebApplication http://MyWebApplication
$web.MigrateUser($false)

erhalten wir die folgende Fehlermeldung:



Hier haben wir dann auch das eigentliche Problem. Nach einigen Recherchen wurde ich dann auch fündig und scheinbar ist das Zurücksetzen von Claims Based auf Classic Mode derzeit noch nicht unterstützt. Aber bei meinen Recherchen sind mir dann ein paar Ideen gekommen, die mich zu dem folgenden Entschluss kommen ließen (Ich habe das Ganze zunächst natürlich in einer Stage-Umgebung getestet):

  1. Backup der WebApplication (Worst Case)
  2. Backup der Inhaltsdatenbank/en
  3. WebApplication löschen (nur die IIS-Site => auf der bestehenden Webanwendung konnte ich das unten folgende PowerShell Script nicht erfolgreich ausführen)
  4. WebApplication neu anlegen
  5. Eventuell vorhandene AAM's neu setzen
  6. Mounten der Inhaltsdatenbank/en
  7. Zurücksetzen der Site-Collection-Administratoren (haben noch den Claim)
  8. Folgendes PowerShell-Script ausführen (Farm-Administrator Account)

function GetClaimBasedUserName($user)
{
    $username = ''
    try
    {
        if ($user.IsDomainGroup)
        {
            if ($user.LoginName.StartsWith('c:0+.w|'))
            {
                $username = $user.LoginName.Substring(7)
            }
        }
        else
        {
            if ($user.LoginName.StartsWith('i:0#.w|'))
            {
                $username = $user.LoginName.Substring(7)
            }
        }
    }
    catch [Net.WebException]
{
$WebExceptionMessage = $_.Exception.Message
Write-Host $WebExceptionMessage
    }
    return $username
}

$site = Get-SPSite 'http://portal.test.com'
$web = $site.RootWeb

foreach ($user in $web.AllUsers)
{
  $username = GetClaimBasedUserName($user)
if (!$username.Equals(""))
                {
                    write-host "Migrating..."
                    try
                    {
$farm = Get-SPFarm
$farm.MigrateUserAccount($user.LoginName, $username, $false)
write-host 'Done'
                    }
                    catch [Net.WebException]
{
$WebExceptionMessage = $_.Exception.Message
Write-Host $WebExceptionMessage
}
                }
}


Ich wünsche dann mal viel Spaß beim Umstellen der Claims Based Authentication.

Viele Grüße
Patrick

Kommentare

Beliebte Posts aus diesem Blog

Verwaltung von Microsoft Teams über das Office 365 Admin Center

Microsoft Teams - derzeit das Tool zur Steigerung der Produktivität und Zusammenarbeit im Unternehmen. Für die Endanwender ergeben sich viele Vorteile, wie. z.B. die schnelle Bereitstellung der notwendigen Funktionalitäten für eine effektive Zusammenarbeit oder auch die Einbindung unterschiedlicher Dienste und Konnektoren . Schnell hat man als Anwender einen externen Dienst oder Anwendung, wie z.B. MindMeister oder auch BitBucket hinzugefügt ohne das Arbeitstool, in diesem Fall MS Teams, verlassen zu müssen - kein Hin- und Herspringen mehr in Browsern oder Anwendungen. Wo die Daten liegen spielt hier eher eine untergeordnete Rolle. Oder mal eben einen weiteren Cloud-Speicher wie z.B. Dropbox hinzugefügt. Was kann man als Endanwender noch mehr verlangen - auch mobil arbeiten zu können - aber auch das ist kein Problem mehr dank verfügbarer Apps. Das hört sich doch alles mehr als gut an - wären da nicht auch die IT-Administratoren, rechtlichen Grundlagen und Unternehmensrichtlinien. Wel...

MS Teams und Office 365 Konnektoren

Office 365 Konnektoren bieten einem großartige Möglichkeiten an. Sie lassen sich einfach konfigurieren und verbinden unterschiedliche Dienste wie z.B. Twitter, BitBucket, GitHub oder auch RSS mit Office 365. Gerade in der heutigen Zeit ist es enorm wichtig schnell mit Informationen versorgt zu werden. Neuerungen und Veränderungen werden quasi im Stundentakt veröffentlicht. Mit MS Teams und Office 365 Konnektoren ist das Zusammenspiel meiner Meinung nach sehr gut gelungen und zudem auch sehr einfach zu konfigurieren. Es gibt eine Vielzahl von vorgefertigten Konnektoren. Sollte sich der Dienst nicht in der Liste befinden oder nicht die Anforderungen abdecken kann man auch seine eigene Konnektoren bereitstellen. Im Team möchte man über die neuen Blogbeiträge auf blogs.office.com informiert werden und über die Themen auch direkt disktutieren ohne die per Email oder sonstigen Medien zu teilen. In diesem Fall gibt es einen Kanal "Microsoft" und ein RSS wird hinzugefügt. ...

Neue Funktionalitäten in Microsoft Teams

Vorgestern hat Microsoft mal wieder super Features für MS Teams veröffentlicht. Teams wird somit mehr und mehr die zentrale App für das Daily Business. Ein weiteres Anzeichen, dass Teams das Tool der Zusammenarbeit und Produktivität der nächsten Zeit werden könnte. Ich habe mich direkt mal an den neuen Features versucht und ein bisschen gespielt :-) Innerhalb von Teams kann man nun im Store nach verfügbaren Apps und diese im Handumdrehen einbinden. Hierbei sind Der Zugriff auf die Apps wurde ebenfalls verbessert. So muss man nicht immer in die Registerkarten der jeweiligen Teams navigieren, sondern hat den Zugriff und auch die Funktionalität über das Menü stark verbessert und die Wege entsprechend verkürzt. Um z.B. nun all seine Aufgaben aus Planner zu sehen kann man nun direkt aus dem Menü in Teams darauf zugreifen. Keine Notwendigkeit mehr Aufgaben pro Team zu durchsuchen oder mittels Browser in die Planner-Anwendung zu springen. Dasselbe gilt für Flow, OneNote, Stream, usw...