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 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ć wieloskładnikowy krok 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. Wszelkie 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 torbie 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świadczeń, wskazując, ż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 interfejsie 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ęć 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, który ma być używany 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 | Purpose | Zapisywanie oświadczeń | Odczytywanie oświadczeń |
---|---|---|---|---|
DefaultSSOSessionProvider | Self-asserted, Microsoft Entra ID, Microsoft Entra multifactor authentication, Claims transformation | 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 | Strona przyspieszania wyboru dostawcy tożsamości. Wykonywanie logowania jednokrotnego. | 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 a usługą 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 usługę Azure AD B2C.
Odwoływanie się do dostawcy sesji
Aby użyć dostawcy sesji w profilu technicznym:
Utwórz profil techniczny zarządzania sesjami odpowiedniego. Należy pamiętać, że pakiet startowy usługi Azure AD B2C zawiera najbardziej typowe profile techniczne zarządzania sesjami. Jeśli ma to zastosowanie, możesz odwołać się do istniejącego profilu technicznego zarządzania sesjami.
Poniższy fragment kodu XML przedstawia profil techniczny zarządzania sesjami pakietu początkowego
SM-AAD
. Podaj parametr sesji 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łuj się do profilu technicznego zarządzania sesjami w profilu technicznym. W ten sposób kontrolujesz zachowanie tego profilu technicznego podczas kolejnych logowania (SSO).
Aby odwołać się do profilu technicznego zarządzania sesjami z profilu technicznego, dodaj
UseTechnicalProfileForSessionManagement
element . W poniższym przykładzie pokazano użycie profilu technicznegoSM-AAD
zarządzania sesjami.ReferenceId
Zmień wartość na identyfikator profilu technicznego zarządzania sesjami.<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 profilu technicznym zarządzania sesjami użyj elementów PersistedClaims
i OutputClaims
do zarządzania oświadczeniami.
- Oświadczenia utrwalone — oświadczenia , które można zapisać 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 zapisywane automatycznie zwracają się 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ć wyjściowe do torby oświadczenia podczas kolejnych logowania (logowanie jednokrotne). Ponieważ oświadczenia wyjściowe nie są zwracane z sesji, należy ustawić wartość domyślną.
Utrwalone i wyjściowe elementy oświadczeń są pokazane w następującym 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
można skonfigurować 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 zapisane w pliku cookie sesji będzie dane wyjściowe do torby oświadczeń, które będą dostępne do użycia w następnym kroku aranżacji.
- Element
OutputClaims
zwróci oświadczenia statyczne 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. Element DefaultSSOSessionProvider
powinien być używany do utrwalania i wystawiania oświadczeń, które są wymagane przez kolejne kroki orkiestracji, które nie zostaną uzyskane w inny sposób 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. Profil SM-AAD
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 działać w następujący sposób w przypadku zastosowania względem profilu technicznego SelfAsserted-LocalAccountSignin-Email
z niestandardowego pakietu startowego 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 jest pomijany, a 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łniły 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
Dostawca ExternalLoginSSOSessionProvider
sesji służy do pomijania ekranu wyboru dostawcy tożsamości i wylogowania się z dostawcy tożsamości federacyjnej. Zazwyczaj odwołuje się do niego profil techniczny skonfigurowany dla dostawcy tożsamości federacyjnej, takiego jak Facebook lub Microsoft Entra ID.
- 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 zapisane w pliku cookie sesji będzie zwracane do torby oświadczenia, dostępne do użycia w następnym kroku aranżacji.
- Element
OutputClaims
zwróci oświadczenia statyczne do torby oświadczeń. Użyj atrybutuDefaultValue
, aby ustawić wartość oświadczenia. - Jeśli 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. Profil SM-SocialLogin
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 podczas logowania jednokrotnego profil użytkownika może być odczytywany z katalogu bez interakcji z dostawcą tożsamości federacyjnej.
Aby skonfigurować zewnętrznego dostawcę sesji, dodaj odwołanie do SM-SocialLogin
z profilów technicznych OAuth1, OAuth2 lub OpenID Connect . Na przykład używa Facebook-OAUTH
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
Dostawca OAuthSSOSessionProvider
sesji służy do zarządzania sesjami usługi Azure AD B2C między jednostkami uzależnionymi OAuth2 lub OpenId Connect i Azure AD B2C. Usługa 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 usługi Azure AD B2C, usługa 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ą usługi Azure AD B2C do uwierzytelniania.
Ten typ dostawcy sesji umożliwia usłudze Azure AD B2C śledzenie wszystkich aplikacji OAuth2 lub OpenId Connect zalogowanych przez użytkownika. Podczas wylogowywanie jednej aplikacji usługa 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 utrwałych lub 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łyny z profilu technicznego JwtIssuer
:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
Dostawca SamlSSOSessionProvider
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 usługi Azure AD B2C.
Zarządzanie sesjami dostawcy tożsamości SAML
Jeśli odwołujesz się do SamlSSOSessionProvider
dostawcy sesji z sesji dostawcy tożsamości SAML, musi być ustawiona RegisterServiceProviders
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 SM-Saml-idp
zarządzania sesjami.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Zarządzanie sesjami dostawcy usług SAML
W przypadku odwoływania SamlSSOSessionProvider
się do dostawcy sesji w celu zarządzania sesją RegisterServiceProviders
jednostki uzależnionej SAML należy ustawić wartość true
. Wylogowywanie sesji SAML wymaga wykonania polecenia SessionIndex
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 SM-Saml-issuer
zarządzania sesjami.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metadane
Atrybut | Wymagania | opis |
---|---|---|
IncludeSessionIndex | Nie. | Obecnie nie można go 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
Dostawca NoopSSOSessionProvider
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 rozszerzonego rejestrowania i inspekcji.
- Self-asserted — wymusza, 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 — wymuś, aby użytkownik wykonywał uwierzytelnianie wieloskładnikowe w ramach "uwierzytelniania intensymenta", 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. Profil SM-Noop
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 używa AAD-Common
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.