Dostawcy sesji logowania jednokrotnego w usłudze Azure Active Directory B2C
W artykule Konfigurowanie zachowania sesji w usłudze Azure Active Directory B2C opisano zarządzanie sesjami dla zasad niestandardowych usługi Azure AD B2C. W tym artykule opisano sposób dalszego konfigurowania zachowania logowania jednokrotnego dla dowolnego profilu technicznego w ramach zasad niestandardowych.
Można na przykład skonfigurować zasady dla logowania jednokrotnego dla całej dzierżawy, ale zawsze chcesz wykonać krok wieloskładnikowy niezależnie od aktywnej sesji logowania jednokrotnego. To zachowanie można osiągnąć, konfigurując dostawcę sesji profilu technicznego wieloskładnikowego.
Dostawców sesji można zastosować do dwóch przepływów:
- Nowe logowanie
- Gdy użytkownik loguje się po raz pierwszy, nie ma sesji. Wszystkie profile techniczne korzystające z dostawcy sesji stają się uczestnikiem sesji.
- Dostawca sesji może zapisywać oświadczenia do pliku cookie sesji.
- Kolejne logowania
- Gdy użytkownik ma aktywną sesję, oświadczenia, które są częścią pliku cookie sesji są odczytywane w worku oświadczenia.
- Nie można zaktualizować oświadczeń, które są częścią pliku cookie sesji.
- Dostawca sesji może wydać dodatkowe oświadczenia do torby oświadczenia wskazujące, że ten profil techniczny został wykonany w warunkach logowania jednokrotnego.
- Profil techniczny można pominąć.
W zależności od dostawcy zarządzania sesjami wybranego dla danego profilu technicznego zachowanie sesji może być aktywne lub pomijane. Poniższa lista przedstawia niektóre z wielu możliwych przykładów przy użyciu dostawców sesji:
- Zapobiegaj lub wymuszaj przerwy w działaniu interfejsu użytkownika podczas kolejnych logowania (SSO).
- Zapamiętaj wybranego dostawcę tożsamości podczas kolejnych logów (SSO).
- Zmniejsz liczbę operacji odczytu do katalogu podczas kolejnych logowania (SSO).
- Śledzenie sesji dostawcy tożsamości społecznościowych w celu wylogowania dostawcy tożsamości.
- Śledzenie zalogowanych aplikacji jednostki uzależnionej na potrzeby wylogowania jednokrotnego.
Dostawcy sesji
Istnieje pięciu dostawców sesji dostępnych do zarządzania sposobem obsługi sesji logowania jednokrotnego przez profil techniczny. Podczas konfigurowania profilu technicznego należy wybrać najbardziej odpowiedniego dostawcę sesji.
W poniższej tabeli przedstawiono dostawcę sesji do użycia w zależności od typu profilu technicznego, którym chcesz zarządzać. Niektórzy dostawcy sesji zezwalają na odczytywanie i zapisywanie oświadczeń do pliku cookie sesji.
Dostawca sesji | Odpowiednie typy profilów technicznych | Przeznaczenie | Zapisywanie oświadczeń | Odczytywanie oświadczeń |
---|---|---|---|---|
DefaultSSOSessionProvider | Self-asserted, Microsoft Entra ID, Microsoft Entra uwierzytelnianie wieloskładnikowe, transformacja oświadczeń | Pomija wykonywanie profilu technicznego. | Tak | Tak |
ExternalLoginSSOSessionProvider | Dostawca tożsamości OAuth1, dostawca tożsamości Oauth2, dostawca tożsamości OpenID Connect, dostawca tożsamości SAML | Przyspieszanie wybierania dostawcy tożsamości strony. Wykonywanie jednokrotnego wylogowywanie. | Tak | Tak |
OAuthSSOSessionProvider | Wystawca tokenu JWT | Zarządza sesją między jednostkami uzależnionymi OAuth2 lub OpenId Connect i Azure AD B2C. Wykonuje jednokrotne wylogowanie. | Nie | Nie |
SamlSSOSessionProvider | Wystawca tokenu SAML | Zarządza sesją między jednostkami uzależnionymi SAML i Azure AD B2C. Wykonuje jednokrotne wylogowanie. | Nie | Nie |
NoopSSOSessionProvider | Dowolne | Pomijanie dowolnego profilu technicznego w ramach sesji. | Nie | Nie |
Na poniższym diagramie przedstawiono typy sesji używane przez Azure AD B2C.
Odwoływanie się do dostawcy sesji
Aby użyć dostawcy sesji w profilu technicznym:
Utwórz odpowiedni profil techniczny zarządzania sesjami. Należy pamiętać, że pakiet startowy Azure AD B2C zawiera najbardziej typowe profile techniczne zarządzania sesjami. Jeśli ma to zastosowanie, możesz odwoływać się do istniejącego profilu technicznego zarządzania sesjami.
Poniższy fragment kodu XML przedstawia profil techniczny zarządzania sesjami pakietu
SM-AAD
startowego. Podać sesję jest typemDefaultSSOSessionProvider
.<TechnicalProfile Id="SM-AAD"> <DisplayName>Session Mananagement Provider</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <PersistedClaims> <PersistedClaim ClaimTypeReferenceId="objectId" /> <PersistedClaim ClaimTypeReferenceId="signInName" /> <PersistedClaim ClaimTypeReferenceId="authenticationSource" /> <PersistedClaim ClaimTypeReferenceId="identityProvider" /> <PersistedClaim ClaimTypeReferenceId="newUser" /> <PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" /> </PersistedClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true" /> </OutputClaims> </TechnicalProfile>
Odwoływanie się do profilu technicznego zarządzania sesjami w profilu technicznym. Dzięki temu można kontrolować zachowanie tego profilu technicznego podczas kolejnych logowania (SSO).
Aby odwołać się do profilu technicznego zarządzania sesjami z profilu technicznego
UseTechnicalProfileForSessionManagement
, dodaj element . W poniższym przykładzie pokazano użycie profilu technicznegoSM-AAD
zarządzania sesjami.ReferenceId
Zmień wartość na identyfikator profilu technicznego zarządzania sesją.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Ważne
Jeśli profil techniczny nie odwołuje się do żadnego dostawcy zarządzania sesjami, zostanie zastosowany dostawca sesji DefaultSSOSessionProvider , co może spowodować nieoczekiwane zachowanie.
Uwaga
Podczas przepływu tokenu odświeżania dostawcy zarządzania sesjami nie są wywoływani. Wszystkie próby wystawienia nowego tokenu dostępu to kopia oryginalnych oświadczeń wystawionych.
Zarządzanie oświadczeniami sesji
Profile techniczne zarządzania sesjami kontrolują, które oświadczenia mogą być odczytywane, zapisywane lub wyjściowe podczas wykonywania zasad niestandardowych.
W ramach profilu technicznego zarządzania sesjami użyj elementów PersistedClaims
i OutputClaims
do zarządzania oświadczeniami.
- Oświadczenia utrwalone — oświadczenia , które mogą być zapisywane w pliku cookie sesji.
- Aby oświadczenie zostało zapisane w pliku cookie sesji, musi być częścią bieżącej torby oświadczenia.
- Wszystkie oświadczenia, które są zapisywane automatycznie, zwracają podczas kolejnych logów (logowanie jednokrotne). Nie trzeba określać oświadczeń wyjściowych.
- Oświadczenia wyjściowe — dodatkowe oświadczenia, które mogą być danymi wyjściowymi torby oświadczenia podczas kolejnych logowania (logowanie jednokrotne). Ponieważ oświadczenia wyjściowe nie są zwracane z sesji, należy ustawić wartość domyślną.
Elementy utrwalionych i wyjściowych oświadczeń przedstawiono w poniższym fragmencie kodu XML:
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
DefaultSSOSessionProvider
Dostawcy zarządzania sesjami i ExternalLoginSSOSessionProvider
mogą być skonfigurowani do zarządzania oświadczeniami, tak aby podczas wykonywania następujących czynności:
- Nowe logowanie
- Element
PersistedClaims
zapisze oświadczenia w pliku cookie sesji. Utrwalone oświadczenia nie mogą zostać przepisane.
- Element
- Kolejne logowania
- Każde oświadczenie, które jest zapisywane w pliku cookie sesji, będzie dane wyjściowe w torbie oświadczeń, które będą dostępne do użycia w następnym kroku aranżacji.
- Element
OutputClaims
zwróci statyczne oświadczenia do torby oświadczeń. Użyj atrybutuDefaultValue
, aby ustawić wartość oświadczenia wyjściowego.
DefaultSSOSessionProvider
DefaultSSOSessionProvider
Dostawca sesji można skonfigurować do zarządzania oświadczeniami podczas kolejnych logowania (logowanie jednokrotne) i zezwalać na pomijanie profilów technicznych. DefaultSSOSessionProvider
Element powinien być używany do utrwalania i wystawiania oświadczeń, które są wymagane przez kolejne kroki orkiestracji, które nie zostaną uzyskane podczas kolejnych logowania (logowanie jednokrotne). Na przykład oświadczenia, które mogą zostać uzyskane z odczytu obiektu użytkownika z katalogu.
Poniższy SM-AAD
profil techniczny jest typem dostawcy DefaultSSOSessionProvider
sesji. SM-AAD
Profil techniczny można znaleźć w niestandardowym pakiecie startowym zasad.
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="signInName" />
<PersistedClaim ClaimTypeReferenceId="authenticationSource" />
<PersistedClaim ClaimTypeReferenceId="identityProvider" />
<PersistedClaim ClaimTypeReferenceId="newUser" />
<PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
Na przykład SM-AAD
profil techniczny zarządzania sesjami używa dostawcy DefaultSSOSessionProvider
sesji. Będzie ona zachowywać się w następujący sposób w przypadku zastosowania względem profilu technicznego z niestandardowego SelfAsserted-LocalAccountSignin-Email
pakietu początkowego zasad:
- Nowe logowanie
signInName
zostanie zapisany w pliku cookie sesji, ponieważ profil techniczny zarządzania sesjami (SM-AAD) jest skonfigurowanysignInName
do utrwalania, a profil techniczny odwołujące się do sm-AAD zawiera elementOutputClaim
dlasignInName
. To zachowanie ma zastosowanie do wszystkich oświadczeń spełniających ten wzorzec.
- Kolejne logowania
- Profil techniczny zostanie pominięty i użytkownik nie będzie widzieć strony logowania.
- Torba oświadczenia będzie zawierać
signInName
wartość z pliku cookie sesji, który został utrwalone podczas nowego logowania, i wszelkie inne oświadczenia, które spełniają wzorzec, który ma zostać utrwalone w pliku cookie sesji. - Profil techniczny zarządzania sesjami zwraca
objectIdFromSession
oświadczenie, ponieważOutput
oświadczenia dostawcy sesji są przetwarzane podczas kolejnych logowania (logowanie jednokrotne). W takim przypadkuobjectIdFromSession
oświadczenie obecne w worku oświadczenia wskazuje, że oświadczenia użytkownika pochodzą z pliku cookie sesji z powodu logowania jednokrotnego.
ExternalLoginSSOSessionProvider
ExternalLoginSSOSessionProvider
Dostawca sesji służy do pomijania ekranu "wybór dostawcy tożsamości" i wylogowywanie się z dostawcy tożsamości federacyjnej. Zazwyczaj odwołuje się on do profilu technicznego skonfigurowanego dla dostawcy tożsamości federacyjnej, takiego jak Facebook lub identyfikator Microsoft Entra.
- Nowe logowanie
- Element
PersistedClaims
zapisze oświadczenia w pliku cookie sesji. Utrwalone oświadczenia nie mogą zostać przepisane.
- Element
- Kolejne logowania
- Każde oświadczenie, które jest zapisywane w pliku cookie sesji, będzie wyprowadzane do torby oświadczenia, dostępne do użycia w następnym kroku aranżacji.
- Element
OutputClaims
wyświetli statyczne oświadczenia do torby oświadczeń. Użyj atrybutuDefaultValue
, aby ustawić wartość oświadczenia. - Gdy profil techniczny, który odwołuje się do profilu technicznego zarządzania sesjami, zawiera
OutputClaim
element , który został utrwalone w pliku cookie sesji, ten profil techniczny zostanie pominięty.
Poniższy SM-SocialLogin
profil techniczny jest typem dostawcy ExternalLoginSSOSessionProvider
sesji. SM-SocialLogin
Profil techniczny można znaleźć w niestandardowym pakiecie startowym zasad.
<TechnicalProfile Id="SM-SocialLogin">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.ExternalLoginSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="AlternativeSecurityId" />
</PersistedClaims>
</TechnicalProfile>
Oświadczenie AlternativeSecurityId
jest generowane, gdy użytkownik loguje się za pomocą zewnętrznego dostawcy tożsamości. Reprezentowanie unikatowego identyfikatora użytkownika zewnętrznego dostawcy tożsamości. Oświadczenie AlternativeSecurityId
jest utrwalane w taki sposób, że w przypadku logowania jednokrotnego profil użytkownika może być odczytywany z katalogu bez interakcji z dostawcą tożsamości federacyjnej.
Aby skonfigurować dostawcę sesji zewnętrznej, dodaj odwołanie do SM-SocialLogin
profilu technicznego OAuth1, OAuth2 lub OpenID Connect. Na przykład Facebook-OAUTH
używa profilu technicznego zarządzania sesjami SM-SocialLogin
. Aby uzyskać więcej informacji, zobacz niestandardowy pakiet startowy zasad.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
OAuthSSOSessionProvider
Dostawca sesji służy do zarządzania sesjami Azure AD B2C między jednostkami uzależnionymi OAuth2 lub OpenId Connect i Azure AD B2C. Azure AD B2C obsługuje wylogowanie jednokrotne, znane również jako single Log-Out (SLO). Gdy użytkownik wyloguje się za pośrednictwem punktu końcowego wylogowania Azure AD B2C, Azure AD B2C wyczyści plik cookie sesji użytkownika z przeglądarki. Jednak użytkownik może nadal być zalogowany do innych aplikacji, które używają Azure AD B2C do uwierzytelniania.
Ten typ dostawcy sesji umożliwia Azure AD B2C śledzenie wszystkich aplikacji OAuth2 lub OpenId Connect zalogowanych przez użytkownika. Podczas wylogowania jednej aplikacji Azure AD B2C podejmie próbę logout
wywołania punktów końcowych wszystkich innych znanych zalogowanych aplikacji. Ta funkcja jest wbudowana w dostawcę sesji. Nie można skonfigurować żadnych utrwalanych ani wyjściowych oświadczeń. Poniższy SM-jwt-issuer
profil techniczny jest typem dostawcy OAuthSSOSessionProvider
sesji.
<TechnicalProfile Id="SM-jwt-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Profil SM-jwt-issuer
techniczny jest przywołyyny z profilu technicznego JwtIssuer
:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
SamlSSOSessionProvider
Dostawca sesji służy do zarządzania zachowaniem sesji za pomocą federacyjnych dostawców tożsamości SAML lub aplikacji jednostki uzależnionej SAML i Azure AD B2C.
Zarządzanie sesjami dostawcy tożsamości SAML
Jeśli odwołujesz się do SamlSSOSessionProvider
dostawcy sesji sesji dostawcy tożsamości SAML, RegisterServiceProviders
należy ustawić wartość false
.
Następujący SM-Saml-idp
profil techniczny jest typem dostawcy SamlSSOSessionProvider
sesji:
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
Aby użyć profilu technicznego SM-Saml-idp
zarządzania sesjami, dodaj odwołanie do profilu technicznego dostawcy tożsamości SAML . Na przykład dostawca Contoso-SAML2
tożsamości SAML usług AD-FS używa profilu technicznego zarządzania sesjamiSM-Saml-idp
.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Zarządzanie sesjami dostawcy usług SAML
Podczas odwoływania SamlSSOSessionProvider
się do dostawcy sesji sesji jednostki uzależnionej RegisterServiceProviders
SAML należy ustawić wartość true
. Wylogowywanie sesji SAML wymaga SessionIndex
wykonania operacji i NameID
.
Następujący SM-Saml-issuer
profil techniczny jest typem dostawcy SamlSSOSessionProvider
sesji:
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>
Aby użyć profilu technicznego zarządzania sesjami, dodaj odwołanie do profilu technicznego SM-Saml-issuer
wystawcy tokenu SAML . Na przykład Saml2AssertionIssuer
profil techniczny używa profilu technicznego zarządzania sesjami SM-Saml-issuer
.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metadane
Atrybut | Wymagane | Opis |
---|---|---|
IncludeSessionIndex | Nie | Obecnie nie można ich zignorować. |
RegisterServiceProviders | Nie | Wskazuje, że dostawca powinien zarejestrować wszystkich dostawców usług SAML, którzy zostali wystawieni asercji. Możliwe wartości: true (wartość domyślna) lub false . |
NoopSSOSessionProvider
NoopSSOSessionProvider
Dostawca sesji służy do pomijania zachowania logowania jednokrotnego. Profile techniczne korzystające z tego typu dostawcy sesji będą zawsze przetwarzane, nawet jeśli użytkownik ma aktywną sesję. Ten typ dostawcy sesji może być przydatny, aby wymusić uruchamianie określonych profilów technicznych, na przykład:
- Przekształcanie oświadczeń — aby utworzyć lub przekształcić oświadczenia, które są później używane do określania kroków aranżacji do przetworzenia lub pominięcia.
- Restful — pobieranie zaktualizowanych danych z usługi Restful za każdym razem, gdy zasady są uruchamiane. Możesz również wywołać funkcję Restful na potrzeby rejestrowania rozszerzonego i inspekcji.
- Samozwańcza — wymuszaj, aby użytkownik dostarczał dane za każdym razem, gdy zasady są uruchamiane. Na przykład zweryfikuj wiadomości e-mail z jednorazowym kodem dostępu lub poproś użytkownika o zgodę.
- Phonefactor — wymuszaj na użytkowniku wykonywanie uwierzytelniania wieloskładnikowego w ramach "uwierzytelniania zintensyfikowanego", nawet podczas kolejnych logowania (logowanie jednokrotne).
Ten typ dostawcy sesji nie utrwala oświadczeń do pliku cookie sesji użytkownika. Poniższy SM-Noop
profil techniczny jest typem dostawcy NoopSSOSessionProvider
sesji. SM-Noop
Profil techniczny można znaleźć w niestandardowym pakiecie startowym zasad.
<TechnicalProfile Id="SM-Noop">
<DisplayName>Noop Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.NoopSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Aby pominąć zachowanie logowania jednokrotnego profilu technicznego, dodaj odwołanie do SM-Noop
profilu technicznego. Na przykład AAD-Common
używa profilu technicznego zarządzania sesjami SM-Noop
. Aby uzyskać więcej informacji, zobacz niestandardowy pakiet startowy zasad.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Następne kroki
Dowiedz się, jak skonfigurować zachowanie sesji.