Share via


Configuración de Azure Active Directory B2C con Akamai Enterprise Application Access for SSO y acceso híbrido seguro

En este tutorial de ejemplo, aprenderá a integrar la autenticación de Azure Active Directory B2C (Azure AD B2C) con Akamai Enterprise Application Access. Akamai Enterprise Application Access es una solución Confianza cero Network Access (ZTNA) que permite el acceso remoto seguro a aplicaciones modernas y heredadas que residen en centros de datos privados. Akamai Enterprise Application Access federa con el Proveedor de identidades (IdP) Azure AD B2C para autenticar a los usuarios y, a continuación, usa sus directivas de autorización para realizar una evaluación continua de la identidad, el dispositivo, la aplicación y el contexto de solicitud antes de permitir el acceso a aplicaciones privadas.

Esta característica está disponible solo para directivas personalizadas. En los pasos de configuración, elija Directiva personalizada en el selector anterior.

Requisitos previos

Para empezar, necesitará lo siguiente:

  • Un contrato de Acceso empresarial de Akamai. Si no tiene una, obtenga la versión de evaluación gratuita.

  • Suscripción a Azure. Si no tiene una suscripción, puede crear una cuenta gratuita.

  • Un inquilino de Azure AD B2C vinculado a la suscripción de Azure.

  • Una aplicación virtual implementada detrás del firewall en el centro de datos o en entornos de nube híbrida para implementar el conector de Akamai Enterprise Application Access

  • Una aplicación que usa encabezados para la autenticación. En este ejemplo, usaremos una aplicación que muestra encabezados docker header-demo-app.

  • O bien, una aplicación openID Connect (OIDC). En esta muestra, usaremos una aplicación web MVC de ASP.NET que inicia la sesión de usuario mediante el middleware Open Web Interface for .NET (OWIN) y la Plataforma de identidad de Microsoft.

Descripción del escenario

En este escenario, habilitará la autenticación de Azure AD B2C para los usuarios finales mientras intentan acceder a aplicaciones privadas protegidas por Akamai Enterprise Application Access.

Los componentes implicados en esta integración son:

  • Azure AD B2C: el proveedor de identidades de SAML responsable de autenticar a los usuarios finales.

  • Acceso a aplicaciones empresariales de Akamai: el servicio en la nube ZTNA que es responsable de proteger el acceso a las aplicaciones privadas con la aplicación continua de directivas de ZTNA.

  • Akamai Enterprise Application Access Connector: una aplicación virtual implementada en el centro de datos privado. Permite la conectividad segura con aplicaciones privadas sin abrir ningún puerto de firewall de entrada del centro de datos.

  • Aplicación: servicio o aplicación implementado en el centro de datos privado al que los usuarios finales necesitan acceder.

El usuario se autentica en Azure AD B2C (como IDP de SAML) que responderá a Akamai Enterprise Application Access (el proveedor de servicios) con una aserción de SAML. Akamai Enterprise Application Access asigna información de la aserción de SAML y construye notificaciones de OpenID o inserta encabezados HTTP que contienen información sobre el usuario. El acceso a aplicaciones empresariales de Akamai pasará esto a la aplicación accesible a través del conector de Acceso a aplicaciones empresariales de Akamai. En nuestro ejemplo, la aplicación mostrará el contenido de estos encabezados. En el caso de uso de la aplicación OIDC, mostrará las notificaciones del usuario.

En el diagrama siguiente se muestra cómo se integra Akamai Enterprise Application Access (EAA) con Azure AD B2C.

Screenshot shows the integration architecture.

  1. Un usuario final intenta acceder a una aplicación hospedada en el centro de datos privado mediante la dirección URL externa de la aplicación registrada en Akamai Enterprise Application Access.

  2. Akamai Enterprise Application Access redirige al usuario final no autenticado a Azure AD B2C para la autenticación.

  3. Después de la autenticación correcta, Azure AD B2C redirige al usuario a Akamai Enterprise Application Access con una aserción de SAML.

  4. Akamai Enterprise Application Access usa la información de identidad de la aserción de SAML para identificar al usuario y determinar si el usuario puede acceder a la aplicación solicitada.

  5. Akamai Enterprise Application Access construye OIDC Claims o inserta encabezados HTTP, que se envían a la aplicación.

  6. La aplicación usa esta información para identificar al usuario autenticado y crea una sesión de aplicación para el usuario final.

Incorporación a Akamai Enterprise Application Access

Para empezar a trabajar con Akamai Enterprise Application Access, consulte la guía de introducción de Akamai Enterprise Application Access.

Paso 1: Incorporación de Azure AD B2C como IdP de SAML en Akamai Enterprise Application Access

Akamai Enterprise Application Access admite la federación de SAML con IdP en la nube, como Azure AD B2C. Agregue Azure AD B2C como IdP de SAML de terceros en Akamai Enterprise Application Access.

  1. Iniciar sesión en Enterprise Center https://control.akamai.com/

  2. En el menú de navegación de Enterprise Center, seleccione Proveedores de identidades de usuarios de identidad > de identidad de acceso a & aplicaciones>.

  3. Seleccione Agregar el proveedor de identidades (+).

  4. Escriba un nombre, una descripción y seleccione el tipo de proveedor como SAML de terceros.

  5. Seleccione Continuar. Aparece la página de configuración del proveedor de identidades.

  6. En Configuración>General, escriba una dirección URL para Identity Server. Puede seleccionar Usar dominio de Akamai o Usar el dominio. Si usa su propio dominio, use un certificado autofirmado o use el certificado personalizado cargado.

  7. En Autenticación, escriba la misma dirección URL que se definió en el paso anterior en General y seleccione Guardar.

    Screenshot shows the akamai settings.

Paso 2: registrar una aplicación SAML en Azure AD B2C

  1. Obtenga los paquetes de inicio de directivas personalizadas en GitHub y, luego, actualice los archivos XML del paquete de inicio LocalAccounts con el nombre del inquilino de Azure AD B2C:

    • Descargue el archivo .zip o clone el repositorio:

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    • En todos los archivos del directorio LocalAccounts, reemplace la cadena yourtenant por el nombre de su inquilino de Azure AD B2C. Por ejemplo, si el nombre del inquilino de B2C es fabrikam, todas las instancias de yourtenant.onmicrosoft.com se convierten en fabrikam.onmicrosoft.com.

  2. Cree un certificado de firma para Azure AD B2C para firmar la respuesta SAML enviada a Akamai Enterprise Application Access:

    a. Obtención de un certificado. Si aún no tiene un certificado, puede usar un certificado autofirmado para este tutorial.

    b. Cargue el certificadoen el inquilino de Azure AD B2C. Tome nota del nombre, ya que será necesario en el TechnicalProfile mencionado en los pasos siguientes.

  3. Habilitación de la directiva para conectarse con una aplicación SAML.

    a. Abra LocalAccounts\TrustFrameworkExtensions.xml en el paquete de inicio de directivas personalizadas. Busque el elemento ClaimsProviders. Si no existe, agréguelo en el elemento TrustFrameworkPolicy raíz y agregue el siguiente fragmento de código XML para implementar el generador de respuestas SAML:

     <ClaimsProvider>
       <DisplayName>Akamai</DisplayName>
       <TechnicalProfiles>
         <!-- SAML Token Issuer technical profile -->
         <TechnicalProfile Id="AkamaiSaml2AssertionIssuer">
           <DisplayName>Token Issuer</DisplayName>
           <Protocol Name="SAML2" />
           <OutputTokenFormat>SAML2</OutputTokenFormat>
           <Metadata>
             <Item Key="IssuerUri">https://<REPLACE>.login.go.akamai-access.com/saml/sp/response</Item>
           </Metadata>
           <CryptographicKeys>
             <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_AkamaiSAMLSigningCert" />
             <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_AkamaiSAMLSigningCert" />
           </CryptographicKeys>
           <InputClaims />
           <OutputClaims />
           <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuerAkamai" />
         </TechnicalProfile>
         <!-- Session management technical profile for SAML-based tokens -->
         <TechnicalProfile Id="SM-Saml-issuerAkamai">
           <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="IncludeSessionIndex">false</Item>
             <Item Key="RegisterServiceProviders">false</Item>
           </Metadata>
         </TechnicalProfile>
       </TechnicalProfiles>
     </ClaimsProvider>
    

    b. Reemplace por issuerUri la dirección URL de Akamai definida en Configuración > general de Akamai Enterprise Application Access en el paso 1

    • Ejemplo, <Item Key="IssuerUri">https://fabrikam.login.go.akamai-access.com/saml/sp/response</Item>

    • Reemplace B2C_1A_AkamaiSAMLSigningCert por el nombre de la clave de directiva cargada.

Paso 3: creación de una directiva de registro o de inicio de sesión configurada para SAML

  1. Cree una copia del archivo SignUpOrSignin.xml en el directorio de trabajo del paquete de inicio y guárdelo con un nuevo nombre. En este artículo se usa SignUpOrSigninSAML.xml como ejemplo. Este archivo es el archivo de directiva del usuario de confianza. Está configurado para emitir una respuesta JWT de forma predeterminada.

  2. Abra el archivo SignUpOrSigninSAML.xml en su editor preferido.

  3. Actualice tenant-name con el nombre del inquilino de Azure AD B2C, cambie los PolicyId valores y PublicPolicyUri de la directiva a B2C_1A_signup_signin_saml y http://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml.

    <TrustFrameworkPolicy
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
    PolicySchemaVersion="0.3.0.0"
    TenantId="tenant-name.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin_saml"
    PublicPolicyUri="http://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml">
    
  4. Al final del recorrido del usuario, Azure AD B2C contiene un paso SendClaims. Este paso hace referencia al perfil técnico del emisor de tokens. Para emitir una respuesta SAML en lugar de la respuesta JWT predeterminada, modifique el paso SendClaims para que haga referencia al nuevo perfil técnico del emisor de tokens SAML, Saml2AssertionIssuer.

    Agregue el siguiente fragmento de código XML justo delante del elemento <RelyingParty>. Este XML sobrescribe el paso 4 de orquestación en el recorrido del SignUpOrSignIn usuario suponiendo que usa los LocalAccount paquetes de inicio de directivas personalizadas.

    Si ha empezado desde una carpeta diferente en el paquete de inicio o ha personalizado el recorrido del usuario mediante la adición o eliminación de pasos de orquestación, asegúrese de que el número del elemento order corresponde al número especificado en el paso de recorrido del usuario para el emisor de tokens. Por ejemplo, en las otras carpetas del paquete de inicio, el número de paso correspondiente es 7 para SocialAndLocalAccounts, 6 para SocialAccounts y 9 para SocialAndLocalAccountsWithMfa.

    <UserJourneys>
    <UserJourney Id="SignUpOrSignIn">
      <OrchestrationSteps>
        <OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/>
      </OrchestrationSteps>
    </UserJourney>
    </UserJourneys>
    

    El elemento de usuario de confianza determina el protocolo que utiliza la aplicación. El valor predeterminado es OpenId. El elemento Protocol debe cambiarse a SAML. Las notificaciones de salida crearán la asignación de notificaciones a la aserción de SAML.

    Reemplace el elemento <TechnicalProfile> completo en el elemento <RelyingParty> por el siguiente XML de perfil técnico.

     <TechnicalProfile Id="PolicyProfile">
       <DisplayName>PolicyProfile</DisplayName>
       <Protocol Name="SAML2"/>
       <OutputClaims>
         <OutputClaim ClaimTypeReferenceId="displayName" />
         <OutputClaim ClaimTypeReferenceId="givenName" />
         <OutputClaim ClaimTypeReferenceId="surname" />
         <OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
         <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
         <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
       </OutputClaims>
       <SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
     </TechnicalProfile>
    

    El archivo de directiva final del usuario de confianza debe tener un aspecto similar al código XML siguiente:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TrustFrameworkPolicy
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
     PolicySchemaVersion="0.3.0.0"
     TenantId="fabrikam.onmicrosoft.com"
     PolicyId="B2C_1A_signup_signin_saml"
     PublicPolicyUri="http://fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml">
     <BasePolicy>
       <TenantId>fabrikam.onmicrosoft.com</TenantId>
       <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
     </BasePolicy>
    
     <UserJourneys>
       <UserJourney Id="SignUpOrSignIn">
         <OrchestrationSteps>
           <OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/>
         </OrchestrationSteps>
       </UserJourney>
     </UserJourneys>
     <RelyingParty>
       <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
       <TechnicalProfile Id="PolicyProfile">
         <DisplayName>PolicyProfile</DisplayName>
         <Protocol Name="SAML2"/>
         <OutputClaims>
           <OutputClaim ClaimTypeReferenceId="displayName" />
           <OutputClaim ClaimTypeReferenceId="givenName" />
           <OutputClaim ClaimTypeReferenceId="surname" />
           <OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
           <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
           <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
         </OutputClaims>
         <SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
       </TechnicalProfile>
     </RelyingParty>
     </TrustFrameworkPolicy>
    

Nota:

Puede seguir el mismo proceso para implementar otros tipos de flujos, por ejemplo, flujos de inicio de sesión, restablecimiento de contraseña o edición de perfiles.

Paso 4: carga de la directiva

Guarde los cambios y cargue el TrustFrameworkBase.xml, los nuevos archivos de directivas TrustFrameworkExtensions.xml y SignUpOrSigninSAML.xml al portal de Azure.

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  3. En Azure Portal, busque Azure AD B2C y selecciónelo.

  4. En Directivas, seleccione Identity Experience Framework. Seleccione Cargar directiva personalizada y, luego, cargue los dos archivos de directiva modificados en el orden siguiente:

    • El archivo base, por ejemplo TrustFrameworkBase.xml
    • La directiva de extensión, por ejemplo TrustFrameworkExtensions.xml
    • A continuación, la directiva de usuario de confianza, como SignUpOrSigninSAML.xml.

Paso 5: descarga de los metadatos de SAML de IdP de Azure AD B2C

Una vez cargados los archivos de directivas, Azure AD B2C usa la información de configuración para generar el documento de metadatos de SAML del proveedor de identidades que usará la aplicación. El documento de metadatos de SAML contiene las ubicaciones de los servicios, como los métodos de inicio y cierre de sesión, y los certificados.

  • Los metadatos de la directiva de Azure AD B2C están disponibles en la siguiente dirección URL: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata

  • Reemplace <tenant-name> por el nombre del inquilino de Azure AD B2C. Reemplace <policy-name> por el nombre (id.) de la directiva. Este es un ejemplo: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata

Descargue los metadatos de SAML y guárdelo localmente en el dispositivo. Esto es necesario con el paso siguiente para completar la configuración en Akamai Enterprise Application Access.

Paso 6: registro de una aplicación de Acceso a aplicaciones empresariales de Akamai en Azure AD B2C

Para que Azure AD B2C confíe en Akamai Enterprise Application Access, cree un registro de aplicación de Azure AD B2C. El registro contiene información de configuración, como el punto de conexión de metadatos de la aplicación.

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  3. En el menú de la izquierda, seleccione Azure AD B2C. O bien, seleccione Todos los servicios y, luego, busque y seleccione Azure AD B2C.

  4. Seleccione Registros de aplicaciones y luego Nuevo registro.

  5. Escriba un Nombre para la aplicación. Por ejemplo, escriba Akamai B2C Enterprise Application Access.

  6. Para los Tipos de cuenta admitidos, seleccione Solo cuentas de este directorio organizativo (Solo B2C: inquilino único).

  7. En URI de redirección, seleccione Web y, a continuación, escriba la dirección URL de Akamai definida en Configuración de acceso a aplicaciones empresariales de Akamai\General en el paso 1. Por ejemplo, https://fabrikam.login.go.akamai-access.com/saml/sp/response.

  8. Seleccione Registrar.

Paso 7: configure la aplicación de Acceso a aplicaciones empresariales de Akamai en Azure AD B2C

Para SAML debe configurar varias propiedades en el manifiesto del registro de aplicación.

  1. En Azure Portal, vaya al registro de aplicación que creó en el Paso 3.

  2. En Administrar, seleccione Manifiesto para abrir el editor de manifiestos. A continuación, modifique las propiedades que se describen en las sección siguiente.

Adición del identificador

Cuando la aplicación SAML Akamai Enterprise Application Access realiza una solicitud a Azure AD B2C, la solicitud de autenticación de SAML incluye un atributo Issuer. El valor de este atributo suele coincidir con el valor entityID de los metadatos de la aplicación. Azure AD B2C usa este valor para buscar el registro de aplicación en el directorio y leer la configuración. Para que esta búsqueda se realice correctamente, el manifiesto identifierUri del registro de aplicación se debe rellenar con un valor que coincida con el atributo Issuer.

Screenshot shows the b2c saml configuration.

En el manifiesto de registro, busque el identifierURIs parámetro y agregue el valor issuerURI definido en el paso 2, ClaimsProvider de Azure AD B2C.

Ejemplo:

"identifierUris": [
		"https://fabrikam.login.go.akamai-access.com/saml/sp/response"
	],

Este valor será el mismo que el configurado en las solicitudes de autenticación de SAML para EntityId en la aplicación y el valor entityID en los metadatos de la aplicación. También deberá buscar el parámetro accessTokenAcceptedVersion y establecer el valor en 2.

Importante

Si no actualiza accessTokenAcceptedVersion a 2, recibirá un mensaje de error que requiere un dominio verificado.

Paso 8: configuración de las opciones de autenticación para el IdP de Azure AD B2C en Akamai Enterprise Application Access

Actualice el IdP de Azure AD B2C de Akamai Enterprise Application Access con información de autenticación, como las direcciones URL de usuario de confianza.

  1. Iniciar sesión en Enterprise Center https://control.akamai.com/

  2. En el menú de navegación de Enterprise Center, seleccione Proveedores de identidades de usuarios de identidad > de identidad de acceso a & aplicaciones>.

  3. Seleccione el nombre del proveedor de identidades creado en el paso 1.

  4. Cargue el archivo de metadatos SAML de Azure AD B2C que descargó en el paso 5.

  5. Para cargar el archivo metadata.xml, seleccione Elegir archivo.

    Screenshot shows the metadata file.

  6. Seleccione Guardar e implementar.

Paso 9: implementación de conectores de Akamai Enterprise Application Access en el centro de datos privado

Para habilitar el acceso a una aplicación privada, implemente uno o varios conectores de Akamai Enterprise Application Access en el centro de datos privado donde reside la aplicación. Asegúrese de que los conectores pueden acceder a la aplicación privada y tener acceso saliente a la nube de Akamai.

Paso 10: definición de una aplicación de acceso en Akamai Enterprise Application Access para la aplicación privada

  1. Defina e implemente una aplicación de acceso en Akamai Enterprise Application Access.

  2. Al definir la Access Application

Opción 1: Encabezados HTTP

En este ejemplo, usaremos una aplicación que muestra encabezados docker header-demo-app. Una vez implementada la aplicación en un entorno privado y un conector es capaz de acceder a la aplicación, cree una aplicación de tipo HTTP personalizado después de la documentación de Akamai Configuración de encabezados HTTP personalizados para una aplicación de acceso.

  1. En Autenticación, seleccione el IdP de SAML de Azure AD B2C creado en los pasos anteriores.

Screenshot shows the akamai authn application.

  1. En la sección Avanzadas de la aplicación, asigne el encabezado HTTP a los atributos SAML emitidos por Azure AD B2C en la respuesta SAML tras una autenticación correcta.

Ejemplo:

Nombre de encabezado Atributo
ps-sso-first http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
ps-sso-last http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
ps-sso-EmailAddress emailaddress
ps-sso-uid objectId

Screenshot shows the akamai header app mapping.

Para probar la aplicación, seleccione la dirección URL de Akamai para la aplicación web tipo HTTP personalizado que ha creado.

Screenshot shows the akamai header app results.

Opción 2: OpenID Connect

En esta muestra, usaremos una aplicación web MVC de ASP.NET que inicia la sesión de usuario mediante el middleware Open Web Interface for .NET (OWIN) y la Plataforma de identidad de Microsoft.

  1. Configure el puente de OIDC en SAML en el IdP de SAML de Azure AD B2C creado con los pasos anteriores.

    Screenshot shows the akamai oidc app oidc settings.

  2. Cree una aplicación de tipo HTTP personalizado después de Configurar OpenID Connect para una aplicación de acceso.

  3. En Autenticación, seleccione el IdP de SAML de Azure AD B2C creado en los pasos anteriores según la aplicación de encabezado HTTP.

    Screenshot shows the akamai authn app settings.

  4. En Opciones avanzadas, seleccione OpenID Connect 1.0 como mecanismo de autenticación y, a continuación, seleccione Guardar.

    Screenshot shows the akamai oidc app authentication settings.

  5. Aparece una nueva pestaña OpenID, copie la dirección URL de detección que se necesita más adelante en los pasos al configurar el componente OWIN para probar la aplicación.

    Screenshot shows the akamai oidc app settings.

  6. En la sección Notificaciones, defina las notificaciones que Akamai emitirá para la aplicación OIDC, asignando sus valores a los atributos SAML proporcionados por Azure AD B2C en la respuesta SAML tras una autenticación correcta. Estas notificaciones tienen que asignar lo que definió en el paso anterior al configurar el puente de OIDC a SAML en el IdP de SAML de Azure AD B2C.

    Screenshot shows the akamai oidc app claim settings.

  7. Reemplace la clase de inicio por el código siguiente en la aplicación web ASP.NET MVC.

    Estos pocos cambios configuran la concesión de flujo de código de autorización, el código de autorización se canjeará por tokens en el punto de conexión de token de la aplicación y presenta la dirección de metadatos para establecer el punto de conexión de detección para obtener metadatos de Akamai.

    public class Startup
    {
         // The Client ID is used by the application to uniquely identify itself to Azure AD.
         string clientId = System.Configuration.ConfigurationManager.AppSettings["ClientId"];
    
         //App Client Secret to redeem the code for an access token
         string ClientSecret = System.Configuration.ConfigurationManager.AppSettings["ClientSecret"];
    
         // RedirectUri is the URL where the user will be redirected to after they sign in.
         string redirectUri = System.Configuration.ConfigurationManager.AppSettings["RedirectUri"];
    
         // PostLogoutRedirectUri is the URL where the user will be redirected to after they sign out
         string PostLogoutRedirectUri = System.Configuration.ConfigurationManager.AppSettings["PostLogoutRedirectUri"];
    
         //Authority is the URL for authority
         string authority = System.Configuration.ConfigurationManager.AppSettings["Authority"];
    
         //discovery endpoint for obtaining metadata
         string MetadataAddress = System.Configuration.ConfigurationManager.AppSettings["MetadataAddress"];
    
    
         /// <summary>
         /// Configure OWIN to use OpenIdConnect
         /// </summary>
         /// <param name="app"></param>
         public void Configuration(IAppBuilder app)
       {
         app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
    
         app.UseCookieAuthentication(new CookieAuthenticationOptions());
         app.UseOpenIdConnectAuthentication(
             new OpenIdConnectAuthenticationOptions
             {
                 // Sets the ClientId, authority, RedirectUri as obtained from web.config
                 ClientId = clientId,
                 Authority = authority,
                 RedirectUri = redirectUri,
                 MetadataAddress = MetadataAddress,
                 // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it is using the home page
                 PostLogoutRedirectUri = redirectUri,
                 RedeemCode = true,
                 Scope = OpenIdConnectScope.OpenIdProfile,
                 // ResponseType is set to request the code id_token - which contains basic information about the signed-in user
                 ResponseType = OpenIdConnectResponseType.Code,
                  // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
                 Notifications = new OpenIdConnectAuthenticationNotifications
                 {
                     AuthenticationFailed = OnAuthenticationFailed
                 }
             }
         );
     }
    
     /// <summary>
     /// Handle failed authentication requests by redirecting the user to the home page with an error in the query string
     /// </summary>
     /// <param name="context"></param>
     /// <returns></returns>
     private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> context)
     {
         context.HandleResponse();
         context.Response.Redirect("/?errormessage=" + context.Exception.Message);
         return Task.FromResult(0);
        }
    }
    
  8. En el web.config archivo, agregue la dirección de metadatos, reemplace clientId, clientsecret, authority, redirectUri y PostLogoutRedirectUri por los valores de la aplicación Akamai en appSettings.

    Puede encontrar estos valores en el paso 5 anterior en la pestaña OpenID de la aplicación HTTP Akamai, donde creó Discovery URL=MetadataAddress. redirectUri es la dirección local para que el conector de Akamai se resuelva en la aplicación OIDC local. Authority es el authorization_endpoint que puede encontrar en el .well-known/openid-configurationdocumento.

    Dirección URL de detección: https://fabrikam.login.go.akamai-access.com/.well-known/openid-configuration

     <appSettings>
       <add key="ClientId" value="xxxxxxxxxxxxxxxxxx" />
       <add key="ClientSecret" value="xxxxxxxxxxxxxxxxxx" />
       <add key="Authority" value="https://fabrikam.login.go.akamai-access.com/oidc/oauth" />
       <add key="redirectUri" value="http://oidcapp.identity.mistermik.com/" />
       <add key="PostLogoutRedirectUri" value="https://oidc-test.go.akamai-access.com/" />
       <add key="MetadataAddress" value="https://fabrikam.login.go.akamai-access.com/.well-known/openid-configuration" />
     </appSettings>
    

    Para probar la aplicación, seleccione la dirección URL de Akamai para la aplicación web tipo HTTP personalizado que creada.

    Screenshot shows the akamai oidc app results.

Probar la solución

  1. Vaya a la dirección URL de la aplicación mediante la dirección URL externa especificada en Akamai Enterprise Application Access.

  2. El usuario no autenticado se redirige a la página de inicio de sesión de Azure AD B2C.

  3. Seleccione el proveedor de identidades en la lista de la página.

  4. Inicie sesión como usuario final con credenciales vinculadas a Azure AD B2C.

  5. Después de la autenticación correcta, el usuario final se redirigirá de nuevo a la aplicación e iniciará sesión en ella como usuario final.

Recursos adicionales