Azure Active Directory B2C でのシングル サインオン管理

注意

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。 ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。 まだ行っていない場合は、Active Directory B2C でのカスタム ポリシーの概要に関する記事で、カスタム ポリシー スターター パックの詳細を確認してください。

シングル サインオン (SSO) セッション管理では、カスタム ポリシー内のその他の技術プロファイルと同じセマンティクスが使用されます。 オーケストレーション ステップが実行されると、そのステップに関連付けられた技術プロファイルで UseTechnicalProfileForSessionManagement が照会されます。 存在する場合、参照されている SSO セッション プロバイダーを調べて、そのユーザーがセッション参加者であるかどうかを確認します。 参加者の場合は、セッションの再設定には SSO セッション プロバイダーが使用されます。 同様に、オーケストレーション ステップの実行が完了すると、SSO セッション プロバイダーが指定されている場合は、プロバイダーを使用してセッションに情報を格納します。

Azure AD B2C では、使用可能な多数の SSO セッション プロバイダーが定義されています。

セッション プロバイダー Scope
NoopSSOSessionProvider なし
DefaultSSOSessionProvider Azure AD B2C 内部セッション マネージャー。
ExternalLoginSSOSessionProvider Azure AD B2C と OAuth1、OAuth2、または OpenId Connect ID プロバイダーの間。
OAuthSSOSessionProvider OAuth2 または OpenId Connect 証明書利用者アプリケーションと Azure AD B2C の間。
SamlSSOSessionProvider Azure AD B2C と SAML ID プロバイダーの間。 および、SAML サービス プロバイダー (証明書利用者アプリケーション) と Azure AD B2C の間。

SSO 管理クラスは、技術プロファイルの <UseTechnicalProfileForSessionManagement ReferenceId="{ID}" /> 要素を使用して指定されています。

入力クレーム

InputClaims 要素が空か、または存在しません。

永続化された要求

アプリケーションに返す必要のある要求、または後の手順の事前条件で使用される要求は、セッション内で保管されるか、あるいはディレクトリ内のユーザーのプロファイルからの読み取りによって拡張される必要があります。 永続化された要求を使用すると、要求がないことによる認証処理の失敗が確実に防止されます。 セッションに要求を追加するには、技術プロファイルの <PersistedClaims> 要素を使用します。 このプロバイダーを使用してセッションを再設定すると、保持されている要求は要求バッグに追加されます。

出力クレーム

<OutputClaims> は、セッションから要求を取得する場合に使用されます。

セッション プロバイダー

NoopSSOSessionProvider

名前が示すように、このプロバイダーは何もしません。 このプロバイダーは、特定の技術プロファイルの SSO 動作を抑制するために使用できます。 次の SM-Noop 技術プロファイルは、カスタム ポリシー スターター パックに含まれています。

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

DefaultSSOSessionProvider

このプロバイダーは、要求をセッション内に保存するために使用できます。 通常、このプロバイダーは、ローカル アカウントおよびフェデレーション アカウントの管理に使用される技術プロファイル内で参照されます。 次の SM-AAD 技術プロファイルは、カスタム ポリシー スターター パックに含まれています。

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

次の SM-MFA 技術プロファイルは、カスタム ポリシー スターター パックSocialAndLocalAccountsWithMfaに含まれています。 この技術プロファイルでは、多要素認証セッションを管理します。

<TechnicalProfile Id="SM-MFA">
  <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="Verified.strongAuthenticationPhoneNumber" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isActiveMFASession" DefaultValue="true"/>
  </OutputClaims>
</TechnicalProfile>

ExternalLoginSSOSessionProvider

このプロバイダーは、"ID プロバイダーの選択" 画面とフェデレーション ID プロバイダーからのサインアウトを抑制するために使用されます。 これは通常、フェデレーション ID プロバイダー (Facebook や Azure Active Directory など) 用に構成された技術プロファイルで参照されます。 次の SM-SocialLogin 技術プロファイルは、カスタム ポリシー スターター パックに含まれています。

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

Metadata

属性 必須 説明
AlwaysFetchClaimsFromProvider いいえ 現在使用されていません。無視してもかまいません。

OAuthSSOSessionProvider

このプロバイダーは、OAuth2 または OpenId Connect 証明書利用者と Azure AD B2C 間の Azure AD B2C セッションを管理するために使用されます。

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

SamlSSOSessionProvider

このプロバイダーは、証明書利用者アプリケーションまたはフェデレーション SAML ID プロバイダー間で、Azure AD B2C SAML セッションを管理するために使用されます。 SAML ID プロバイダー セッションを保存するために SSO プロバイダーを使用する場合、RegisterServiceProvidersfalse に設定する必要があります。 次の SM-Saml-idp 技術プロファイルは、SAML ID プロバイダーによって使用されます。

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

B2C SAML セッションを保存するためにプロバイダーを使用する場合は、RegisterServiceProviderstrue に設定する必要があります。 SAML セッションのログアウトを完了するには、SessionIndexNameID が必要です。

次の SM-Saml-issuer 技術プロファイルは、SAML 発行者技術プロファイルによって使用されます。

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

Metadata

属性 必須 説明
IncludeSessionIndex いいえ 現在使用されていません。無視してもかまいません。
RegisterServiceProviders いいえ アサーションが発行された SAML サービス プロバイダーすべてをプロバイダーが登録する必要があることを示します。 指定できる値は true(既定値) またはfalseです。

次のステップ

セッション動作を構成する方法について確認します。