Subrecorridos

Los subrecorridos se pueden usar para organizar y simplificar el flujo de los pasos de orquestación dentro de un recorrido del usuario. Los recorridos del usuario especifican rutas de acceso explícitas con las que una directiva permite que una aplicación de usuario de confianza obtenga las notificaciones deseadas para un usuario. Se conduce al usuario por estas rutas de acceso para recuperar las notificaciones que se van a presentar al usuario de confianza. En otras palabras, los recorridos del usuario definen la lógica de negocios por la que pasa un usuario final mientras el marco de experiencia de identidad de Azure AD B2C procesa la solicitud. El recorrido del usuario se representa como una secuencia de orquestación por la que hay que pasar para lograr una transacción correcta. El elemento ClaimsExchange de un paso de orquestación está asociado a un solo perfil técnico que se ejecuta.

Un subrecorrido es una agrupación de pasos de orquestación que se pueden invocar en cualquier punto dentro de un recorrido del usuario. Puede usar subrecorridos para crear secuencias de pasos reutilizables o implementar una bifurcación que represente mejor la lógica de negocios.

Bifurcación del recorrido del usuario

Los subrecorridos se comportan como recorridos del usuario, ya que ambos se representan como una secuencia de orquestación por la que hay que pasar para lograr una transacción correcta. Los recorridos de usuario se pueden invocar por sí mismos y requieren un paso SendClaims para ejecutarse. Los subrecorridos son componentes de los recorridos del usuario y no se pueden invocar de forma independiente y siempre se llaman desde un recorrido del usuario.

El componente clave de la bifurcación es permitir un mejor procesamiento de la lógica de negocios en un recorrido del usuario. Los pasos de orquestación comunes se agrupan en fragmentos individuales que se invocan por separado. Un subrecorrido puede simplificar un recorrido en el que varios pasos de orquestación están acoplados (con las mismas condiciones previas). Un subrecorrido solo se llama desde un recorrido del usuario y no debe llamar a otro subrecorrido.

Existen dos tipos de subrecorrido:

  • Call: devuelve el control al autor de la llamada. El subrecorrido se ejecuta y, a continuación, se devuelve el control al paso de orquestación que se ejecuta actualmente en el recorrido del usuario.
  • Transfer: transfiere el control al subrecorrido (bifurcación irreversible). El subrecorrido debe tener un paso SendClaims para devolver las notificaciones a la aplicación de usuario de confianza.

Escenarios de ejemplo

Llamada al subrecorrido

Un subrecorrido de llamada resulta útil en los escenarios siguientes:

  • Restricción de acceso por edad: En el caso de la restricción de acceso por edad, hay muchos componentes compartidos entre los recorridos del usuario. La bifurcación permite a compilar los elementos comunes en componentes que se pueden compartir.
  • Consentimiento parental: La bifurcación facilita el diseño del consentimiento parental, ya que nos permite acceder a las notificaciones del recorrido de usuario que el menor ha ejecutado, junto con la posibilidad de bifurcar a un recorrido de usuario de consentimiento parental, después de detectar que el usuario requiere consentimiento.
  • Registrarse para iniciar sesión: Considere un escenario en el que ya existe un usuario en el directorio, pero puede que haya olvidado que había creado una cuenta. En tal caso, en lugar de indicar al usuario que las credenciales que ha escrito ya existen y obligarle a reiniciar el recorrido, puede ser conveniente que la directiva pueda realizar el cambio desde el flujo de registro a un flujo de inicio de sesión para ese usuario.

Subrecorrido de transferencia

Un subrecorrido de transferencia resulta útil en los escenarios siguientes:

  • Visualización de una página de bloque.
  • Pruebas A/B mediante el enrutamiento de la solicitud a un subrecorrido para ejecutar y emitir un token.

Adición de un elemento SubJourneys

A continuación, se muestra un ejemplo de un elemento SubJourney de tipo Call, que devuelve el control al recorrido del usuario.

<SubJourneys>
  <SubJourney Id="ConditionalAccess_Evaluation" Type="Call">
    <OrchestrationSteps>
      <OrchestrationStep Order="1" Type="ClaimsExchange">
       <ClaimsExchanges>
        <ClaimsExchange Id="ConditionalAccessEvaluation" TechnicalProfileReferenceId="ConditionalAccessEvaluation" />
       </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="2" Type="ClaimsExchange">
        <Preconditions>
          <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
            <Value>conditionalAccessClaimCollection</Value>
            <Action>SkipThisOrchestrationStep</Action>
          </Precondition>
        </Preconditions>
        <ClaimsExchanges>
          <ClaimsExchange Id="GenerateCAClaimFlags" TechnicalProfileReferenceId="GenerateCAClaimFlags" />
        </ClaimsExchanges>
      </OrchestrationStep>
    </OrchestrationSteps>
  </SubJourney>
</SubJourneys>

A continuación, se muestra un ejemplo de un elemento SubJourney de tipo Transfer, que devuelve un token a la aplicación de usuario de confianza.

<SubJourneys>
  <SubJourney Id="B" Type="Transfer">
    <OrchestrationSteps>
      ...
      <OrchestrationStep Order="5" Type="SendClaims">
    </OrchestrationSteps>
  </SubJourney>
</SubJourneys>

Invocación de un paso de subrecorrido

Se usa un nuevo paso de orquestación del tipo InvokeSubJourney para ejecutar un subrecorrido. A continuación, se muestra un ejemplo que incluye todos los elementos de ejecución de este paso de orquestación.

<OrchestrationStep Order="5" Type="InvokeSubJourney">
  <JourneyList>
    <Candidate SubJourneyReferenceId="ConditionalAccess_Evaluation" />
  </JourneyList>
</OrchestrationStep>

Componentes

Para definir los subrecorridos compatibles con la directiva, agregue un elemento SubJourneys bajo el elemento de nivel superior del archivo de directiva.

El elemento UserJourneys contiene el elemento siguiente:

Elemento Repeticiones Descripción
SubJourney 1:n Un subrecorrido que define todas las construcciones necesarias para un flujo de usuario completo.

El elemento SubJourneys contiene los siguientes atributos:

Atributo Obligatorio Descripción
Identificador El identificador del subrecorrido que puede usar el recorrido del usuario para hacer referencia al subrecorrido de la directiva. El elemento SubJourneyReferenceId del elemento Candidate apunta a este atributo.
Tipo Valores posibles: Call o Transfer. Para más información, consulte Bifurcación del recorrido del usuario.

El elemento UserJourney contiene el elemento siguiente:

Elemento Repeticiones Descripción
OrchestrationSteps 1:n Una secuencia de orquestación por la que hay que pasar para lograr una transacción correcta. Cada recorrido del usuario consta de una lista ordenada de los pasos de orquestación que se ejecutan en secuencia. Si se produce un error en algún paso, la transacción no prospera.

OrchestrationSteps

Para una lista completa de los elementos de paso de orquestación, vea UserJourneys.

Pasos siguientes

Más información sobre UserJourneys