Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Używasz uwierzytelniania oświadczeń systemu Windows (za pośrednictwem protokołu Windows Challenge/Response [NTLM] lub Kerberos) w aplikacji sieci Web programu Microsoft SharePoint Server 2013.

  • Użytkownik chce przełączać się do oświadczeń zaufanych dostawców przy użyciu bezpiecznego dostawcy opartego na protokole SAML (Application Markup Language), takiego jak usługi federacyjne Active Directory (AD FS).

  • Instrukcje dotyczące migracji uwierzytelniania oświadczeń systemu Windows do uwierzytelniania oświadczeń opartego na protokole SAML można znaleźć w temacie SharePoint Server 2013 w witrynie Microsoft Developer Network (MSDN).

  • Uruchom następujące polecenie:

    Convert-SPWebApplication-ID $wa-do oświadczeń-TRUSTED-DEFAULT-from oświadczeń-WINDOWS-TrustedProvider $tp-SourceSkipList $csv-RetainPermissions

W tym scenariuszu jest wyświetlany następujący komunikat o błędzie:

Uwierzytelnianie oświadczenia opartego na protokole SAML jest niezgodne.

Przyczyna

Ten problem występuje, ponieważ wystawca tokenu zaufania tożsamości nie został utworzony przy użyciu konfiguracji domyślnej. Aby polecenie convert-SPWebApplication działało poprawnie, należy użyć konfiguracji domyślnej. Polecenie convert-SPWebApplication wymaga konkretnej konfiguracji zaufanego dostawcy, aby mógł on być zgodny z funkcją konwersji oświadczeń systemu Windows na adres SAML lub odwrotnie. W szczególności, zaufany wystawca tokenów tożsamości musi zostać utworzony przy użyciu parametrów UseDefaultConfiguration i IdentifierClaimIs . Możesz sprawdzić, czy zaufany wystawca tokenów tożsamości został utworzony przy użyciu parametru UseDefaultConfiguration , uruchamiając następujące skrypty programu Windows PowerShell.Uwaga: W tych skryptach zakłada się, że w bieżącej farmie utworzono tylko jednego zaufanego dostawcę tożsamości.

$tp = Get-SPTrustedIdentityTokenIssuer$tp.claimtypes 

Typy oświadczeń, które mają być wyprowadzane przez ten skrypt, są następujące:

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn

#Get the Identity claim:$tp = Get-SPTrustedIdentityTokenIssuer$tp.IdentityClaimTypeInformation 

Oświadczenie tożsamości musi być jednym z następujących:

  • WindowAccountName

  • EmailAddress

  • OŚWIADCZENIE

Przykładowe dane wyjściowe $tp. IdentityClaimTypeInformation: DisplayName: adres E-mail InputClaimType: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/EmailAddressMappedClaimType: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/EmailAddress#IsIdentityClaim : prawda powinna istnieć niestandardowa Dostawca oświadczeń o takiej samej nazwie jak wystawca tokena, który powinien być typu SPTrustedBackedByActiveDirectoryClaimProvider. Uruchom tę opcję, aby sprawdzić, czy dostawca oświadczeń jest obecny i zgodny:

 $tp = Get-SPTrustedIdentityTokenIssuer$name = $tp.name$cp = Get-SPClaimProvider $nameif($cp.typename -match "SPTrustedBackedByActiveDirectoryClaimProvider"){write-host "Claim provider is present and has TypeName of " $cp.typename " it should be valid"}else{write-host "Claim provider is not present. Trusted Identity Token Issuer" $tp.name " is not compatible with convert-spwebapplication"}

Rozwiązanie

Aby rozwiązać ten problem, Usuń, a następnie utwórz ponownie zaufany wystawca tokenów tożsamości. W tym celu wykonaj następujące czynności:

  1. Uruchom następujący skrypt:

    $tp = Get-SPTrustedIdentityTokenIssuer$tp | fl$tp.name$tp.IdentityClaimTypeInformation

    Utwórz kopię danych wyjściowych tego skryptu na potrzeby przyszłego odwołania. W szczególności potrzebujemy wartości dla właściwości Name, aby można było utworzyć nowy wystawca tokena przy użyciu tej samej nazwy, co wymaga oświadczenia tożsamości, aby można było utworzyć nowy Dostawca oświadczeń przy użyciu tego samego oświadczenia tożsamości. Tak długo, jak w przypadku wystawcy token jest używana ta sama nazwa, a w przypadku oświadczenia tożsamości jest używane to samo roszczenie, wszyscy użytkownicy będą utrzymywać swoje uprawnienia w aplikacji sieci Web po ponownym utworzeniu wystawcy tokenu.

  2. Usuń bieżącego zaufanego dostawcę tożsamości z dostawców uwierzytelniania dla dowolnej aplikacji sieci Web, która obecnie korzysta z niej.

  3. Usuń wystawcę tokenu, uruchamiając następujące polecenie:

    Remove-SPTrustedIdentityTokenIssuer -Identity "TheNameOfYourTokenIssuer"
  4. Ponownie utwórz wystawcę tokenu. Aby to zrobić, wykonaj czynności opisane w temacie implementowanie uwierzytelniania opartego na protokole SAML w programie SharePoint Server 2013 w witrynie sieci Web Microsoft TechNet, aby uzyskać więcej informacji.Ważne Po uruchomieniu polecenia New-SPTrustedIdentityTokenIssuer należy użyć parametrów UseDefaultConfiguration i IdentifierClaimIs . Parametr UseDefaultConfiguration to tylko przełącznik. Możliwe wartości parametru IdentifierClaimIs są następujące:

    • NAZWA KONTA

    • Adres e-mail

    • USER-NAZWA UŻYTKOWNIKA

    Przykładowy skrypt:

    $ap = New-SPTrustedIdentityTokenIssuer -Name $tokenIdentityProviderName -Description $TrustedIdentityTokenIssuerDescription -realm $siteRealm -ImportTrustCertificate $adfsCert-SignInUrl $signInUrl -UseDefaultConfiguration -IdentifierClaimIs EMAIL -RegisteredIssuerName $siteRealm
  5. W obszarze Administracja centralna Dodaj nowego wystawkę zaufanego tokenu tożsamości do dostawców uwierzytelniania aplikacji sieci Web, którą chcesz przekonwertować. Aplikacja sieci Web musi zawierać zarówno uwierzytelnianie systemu Windows, jak i wybrany docelowy zaufany dostawca tożsamości.

Więcej informacji

Dodatkowe porady dotyczące poprawnego konwertowania: Jeśli wartość poczty e-mail jest używana dla oświadczenia identyfikatora (czyli parametru IdentifierClaimIs ), tylko użytkownicy, których adresy e-mail są wypełnione w usłudze Active Directory, zostaną przekonwertowane. Wszystkie konta użytkowników wymienione w pliku CSV, które są zdefiniowane w parametrze SourceSkipList , nie zostaną przekonwertowane na dane SAML. Aby można było przekonwertować oświadczenia systemu Windows na dane SAML, nazwy kont użytkowników mogą być wyświetlane z lub bez notacji oświadczeń. Na przykład dopuszczalna jest wartość "CONTOSO\user1" lub "i:0 #... | CONTOSO\user1". Dodaj do tego pliku CSV wszystkie konta użytkowników, których nie chcesz konwertować. Dotyczy to kont usług i kont administratorów.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×