SupportMultipleDomain switch when managing SSO to Office 365

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Podsumowanie

Korzystanie z przełącznika SupportMultipleDomain podczas zarządzania logowaniem jednokrotnym do usługi Office 365 za pomocą usług ADFS

Gdy logowanie jednokrotne jest włączone dla usługi O365 za pośrednictwem usług ADFS, dla usługi O365 powinno być tworzone zaufanie podmiotu zależnego (RESEARCH).

Zrzut ekranu przedstawiający usługi AD FS przedstawiające zaufanie podmiotu zależnego (RP) utworzone dla usługi O365

Poniżej przedstawiono polecenia, które tworzyły zaufanie dla funkcji SQL dla systemu O365:

New-MsolFederatedDomain -DomainName<domain>
Update-MSOLFederatedDomain -DomainName <domain>
Convert-MsolDomainToFederated -DomainName <domain>

Utworzono powyższe zaufanie dla 2 reguł roszczeń

Get-MsolFederationProperty -DomainName w domenach federowanych pokazuje, że identyfikator "FederationServiceIdentifier" jest taki sam dla źródłowych usług ADFS i O365, czyli http://stsname/adfs/Services/trust

Wcześniej przed aktualizacjami 1 pakietu zbiorczych i pakietu zbiorczych 2 usług ADFS klienci usługi Microsoft Office 365, którzy korzystają z logowania jednokrotnego za pośrednictwem usług AD FS 2.0 i mają wiele domen najwyższego poziomu dla sufiksów głównej nazwy użytkownika (UPN) użytkowników w organizacji (na przykład ) są wymagane do wdrożenia oddzielnego wystąpienia usługi federskiej @contoso.com AD FS 2.0 dla każdego sufiksu. @fabrikam.com Teraz jest dostępny zestaw zbiorczy dla usług AD FS 2.0 ( ), który działa w połączeniu z przełącznikiem "SupportMultipleDomain" w celu umożliwienia serwerowi usług AD FS obsługi tego scenariusza bez konieczności wymagania dodatkowych serwerów usług https://support.microsoft.com/kb/2607496 AD FS 2.0.

Wraz z 1 aktualizacją zbiorczą usług ADFS dodaliśmy następującą funkcję:

Obsługa wielu wystawców

"Wcześniej klienci usługi Microsoft Office 365, którzy wymagają logowania jednokrotnego (SSO) przy użyciu usług AD FS 2.0 i używają wielu domen najwyższego poziomu dla sufiksów głównej nazwy użytkownika (UPN) użytkowników w organizacji (na przykład ) są wymagane do wdrożenia oddzielnego wystąpienia usługi federskiej @contoso.us AD FS 2.0 dla każdego sufiksu. @contoso.de Po zainstalowaniu tego pakietu zb. aktualizacji na wszystkich serwerach federskich usług AD FS 2.0 w farmie i zastosowaniu się do instrukcji używania tej funkcji z usługą Office 365 nowe reguły żądania będą ustawione na dynamiczne generowanie identyfikatorów wystawcy tokenów na podstawie sufiksów upn użytkowników usługi Office 365. W wyniku tego nie trzeba wielokrotnie skonfigurować serwera federacji usług AD FS 2.0 w celu obsługi logowania jednokrotnego dla wielu domen najwyższego poziomu w usłudze Office 365".

Obsługa wielu Top-Level domen

"Obecnie klienci usługi Microsoft Office 365, którzy korzystają z logowania jednokrotnego (SSO) za pośrednictwem programu AD FS 2.0 i mają wiele domen najwyższego poziomu dla sufiksów głównej nazwy użytkownika (UPN) użytkowników w organizacji (na przykład ) są wymagane do wdrożenia oddzielnego wystąpienia usługi federskiej @contoso.com AD FS 2.0 dla każdego sufiksu. @fabrikam.com Teraz jest dostępny zestaw zbiorczy dla usług AD FS 2.0 ( ) , który działa w połączeniu z przełącznikiem "SupportMultipleDomain", aby umożliwić serwerowi usług AD FS obsługę tego scenariusza bez konieczności wymagania dodatkowych serwerów ad https://support.microsoft.com/kb/2607496 fs 2.0".

Poniżej przedstawiono polecenia, które tworzyły zaufanie dla funkcji SQL dla systemu O365:

New-MsolFederatedDomain -DomainName<domain>-SupportMultiDomain

Update-MSOLFederatedDomain -DomainName <domain>-SupportMultipleDomain

Convert-MsolDomainToFederated -DomainName <domain>-supportMultipleDomain

Get-MsolFederationProperty -DomainName w domenach federowanych pokazuje teraz, że parametr "FederationServiceIdentifier" jest inny w usługach ADFS i O365. Każda domena federacyjnych będzie mieć "FederationServiceIdentifier" jako http:// <domainname> /adfs/services/trust/, natomiast konfiguracja usług ADFS nadal ma http://STSname/adfs/Services/trust

Ze względu na tę niezgodność w konfiguracji musimy zagwarantować, że podczas wysłania tokenu do usługi O365 wymienionego w nim wystawcy jest taki sam, jak ten, który skonfigurowano dla domeny w u rejestratorze O365. Jeśli nie otrzymasz poniższego komunikatu o błędzie:

Dlatego podczas dodawania lub aktualizowania zaufania przez przełącznik SupportMultipleDomain do zaufania O365 jest automatycznie dodawana trzecia reguła żądania.

Domyślna trzecia reguła:

c:[Type == " http://schemas.xmlsoap.org/claims/UPN](http://schemas.xmlsoap.org/claims/UPN "] => issue(Type = " https://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid ", Value = regexreplace(c.Value, . +@(?<domain>.+ ), http://${domain}/adfs/services/trust/ ));

Ta reguła używa wartości sufiksu upn użytkownika i używa jej do wygenerowania nowego oświadczenia o nazwie "Problemrid". Przykład http://contoso.com/adfs/services/trust/ .

Używając fiddlera,możemy prześledzić token przekazany do login.microsoftonline.com/login.srf. Po skopiowaniu tokenu przekazanego w programie wresult wklej zawartość w notatniku i zapisz ten plik jako xml. Później możesz otworzyć token zapisany jako plik xml przy użyciu programu IE i wyświetlić jego zawartość.

Zrzut ekranu przedstawiający fidder

Warto zauważyć, że reguła ma problemy z roszczeniem "Issuerid", ale nie widać tego żądania w tokenie odpowiedzi— w rzeczywistości widzimy atrybut "Wystawca" zmodyfikowany w celu zmodyfikowania nowo utworzonej wartości.

<saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="_2546eb2e-a3a6-4cf3-9006-c9f20560097f"Issuer="[http://contoso.com/adfs/services/trust/](http://contoso.com/adfs/services/trust/)" IssueInstant="2012-12-23T04:07:30.874Z" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">

UWAGA

  • SupportMultipleDomain jest używany bez zainstalowanego zestawu zbiorczych usług ADFS 1 lub 2. Zobaczysz, że token odpowiedzi wygenerowany przez usługę ADFS zawiera ZARÓWNO wystawcę=" jak i żądanie "Issuerid" o wartości komponowanej zgodnie z trzecią regułą http://STSname/adfs/Services/trust żądania.

    <saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="_2546eb2e-a3a6-4cf3-9006-c9f20560097f"Issuer=`http://STS.contoso.com/adfs/services/trust/` IssueInstant="2012-12-23T04:07:30.874Z" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
    
    …
    
    <saml:Attribute AttributeName="issuerid" AttributeNamespace="[http://schemas.microsoft.com/ws/2008/06/identity/claims](http://schemas.microsoft.com/ws/2008/06/identity/claims)"><saml:AttributeValue>[http://contoso.com/adfs/services/trust/</saml:AttributeValue](http://contoso.com/adfs/services/trust/%3c/saml:AttributeValue)></saml:Attribute>
    - This will again lead to error "Your organization could not sign you in to this service"
    

Obsługa domen podrzędnych

"Należy pamiętać, że przełącznik "SupportMultipleDomain" nie jest wymagany, jeśli masz jedną domenę najwyższego poziomu i wiele poddomen. Jeśli na przykład domeny używane dla sufiksów upn to , a domena najwyższego poziomu (w tym przypadku contoso.com) została dodana jako pierwsza i federowana, nie musisz używać przełącznika @sales.contoso.com @marketing.contoso.com @contoso.com "SupportMultipleDomain". Jest to spowodowane tym, że te poddomeny są skutecznie zarządzane w ramach zakresu nadrzędnego i można już z nich korzystać na jednym serwerze usług AD FS".

Jeśli jednak masz wiele domen najwyższego poziomu ( i ), a te domeny również mają poddomeny ( i ), przełącznik @contoso.com @fabrikam.com @sales.contoso.com "SupportMultipleDomain" nie będzie działać w przypadku poddomen i ci użytkownicy nie będą mogli się @sales.fabrikam.com zalogować.

Dlaczego ten przełącznik nie będzie działać w powyższym scenariuszu?

Odpowiedź:

  • W przypadku domeny podrzędnej, udostępniając tę samą przestrzeń nazw, nie federujmy ich oddzielnie. Federowana domena główna obejmuje również dziecko, co oznacza, że wartość federationServiceIdentifier dla domeny podrzędnej będzie również taka sama jak wartość elementu nadrzędnego, https://contoso.com/adfs/services/trust/ czyli.

  • Trzecia reguła żądania, która kończy się odebraniem sufiksu nazwy upn dla użytkownika w celu zredagowania wartości Wystawcy, znowu powoduje niezgodność i dlatego jest wyświetlany komunikat o błędzie "Twoja organizacja nie może zalogować Cię do tej https://Child1.contoso.com/adfs/services/trust/ usługi".

    Aby rozwiązać ten problem, możemy zmodyfikować trzecią regułę tak, aby kończyła się generowanie wartości wystawcy, która jest taka jak "FederationServiceIdentifier" dla domeny na końcu usługi O365. Poniżej przedstawiono 2 różne reguły, które mogą działać w tym scenariuszu. Ta reguła wybiera domenę główną z sufiksu głównej nazwy użytkownika w celu zredagowania wartości Wystawcy. W przypadku sufiksu upn child1.contoso.com nadal będzie generować wartość wystawcy zamiast https://contoso.com/adfs/services/trust/ https://Child1.contoso.com/adfs/services/trust/ (z regułą domyślną)

Zrzut ekranu przedstawiający regułę żądania

Dostosowana trzecia reguła

Reguła 1.

c:[Type == `http://schemas.xmlsoap.org/claims/UPN`]
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^((.*)([.|@]))?(?<domain>[^.]*[.].*)$", "http://${domain}/adfs/services/trust/"));

Reguła 2.

c:[Type == `http://schemas.xmlsoap.org/claims/UPN`]
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value =regexreplace(c.Value, "^((.*)([.|@]))?(?<domain>[^.]*.(com|net|co|org)(.\w\w)?)$", "[http://${domain}/adfs/services/trust/](http://$%7bdomain%7d/adfs/services/trust/)"));

UWAGA

Powyższe reguły mogą nie dotyczyć wszystkich scenariuszy, ale można je dostosować, aby upewnić się, że wartość "Issuerid" odpowiada wartości "FederationServiceIdentifier" dla domeny dodanej/federentnej na końcu usługi O365.

Niezgodność właściwości federationServiceIdentifier między usługami ADFS i O365 dla domeny można również poprawić, modyfikując "federationServiceIdentifier" dla domeny na końcu usługi O365, tak aby był on niezgodny z "federationServiceIdentifier" dla usługi ADFS. Ale federatorServiceIdentifier może być skonfigurowany tylko dla JEDNEJ domeny federacji, a nie dla wszystkich.

Set-MSOLDomainFederationSettings -nazwa domeny Contoso.com –issueruri http://STS.contoso.com/adfs/services/trust/

Więcej informacji, które powinny ułatwić Ci napisanie własnych reguł roszczeń**.