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. ...

Aktivierung Blob Cache (Enable Blob Cache SharePoint 2013)

Heute wollte ich mich mit der neuen Funktionalität der <Image Renditions> (Bildwiedergabe) im SharePoint Server 2013 beschäftigen. Man kann den Punkt <Image Renditions> in den Site-Settings finden. Bevor ich nun jedoch Einstellungen und die Funktionalität nutzen kann erwartete mich zunächst eine Warnmeldung: " The blob cache is not enabled in this web application. Image Renditions will not be generated until the blob cache is enabled. For information on turning on the blob cache, please review the product information. " Ich habe mich dann einmal in der Zentraladministration auf die Suche nach Einstellungen auf Webanwendungsebene für die Aktivierung des Blob Cache gemacht, bin in der GUI jedoch nicht fündig geworden. Was nun tun? Gibt es eventuell PowerShell cmdlets für SharePoint 2013 zum Aktivieren des Blob Cache. Auch hier bin ich leider nicht fündig geworden. Aber da es sich um Konfigurationseinstellungen der Webanwendung handelt so findet man di...