Partilhar via


Configurar o Azure Ative Directory B2C com o Akamai Enterprise Application Access para SSO e acesso híbrido seguro

Neste tutorial de exemplo, aprenda a integrar a autenticação do Azure Ative Directory B2C (Azure AD B2C) com o Akamai Enterprise Application Access. O Akamai Enterprise Application Access é uma solução Zero Trust Network Access (ZTNA) que permite o acesso remoto seguro a aplicativos modernos e legados que residem em datacenters privados. O Akamai Enterprise Application Access federa com o Provedor de Identidade (IdP) Azure AD B2C para autenticar usuários e, em seguida, usa suas políticas de autorização para executar a avaliação contínua da identidade, dispositivo, aplicativo e contexto de solicitação antes de permitir o acesso a aplicativos privados.

Este recurso está disponível apenas para políticas personalizadas. Para as etapas de configuração, selecione Política personalizada no seletor anterior.

Pré-requisitos

Para começar, você precisará:

  • Um contrato de Acesso Empresarial da Akamai. Se você não tiver um, obtenha uma avaliação gratuita.

  • Uma subscrição do Azure. Se não tiver uma subscrição, pode obter uma conta gratuita.

  • Um locatário do Azure AD B2C vinculado à sua assinatura do Azure.

  • Um dispositivo virtual implantado atrás do firewall em seu datacenter ou em ambientes de nuvem híbrida para implantar o conector Akamai Enterprise Application Access

  • Um aplicativo que usa cabeçalhos para autenticação. Neste exemplo, usaremos um aplicativo que exibe cabeçalhos docker header-demo-app.

  • OU um aplicativo OpenID Connect (OIDC). Neste exemplo, usaremos um aplicativo Web MVC ASP.NET que entra nos usuários usando o middleware Open Web Interface for .NET (OWIN) e a plataforma de identidade da Microsoft.

Descrição do cenário

Nesse cenário, você habilitará a autenticação B2C do Azure AD para usuários finais enquanto eles tentam acessar aplicativos privados protegidos pelo Akamai Enterprise Application Access.

Os componentes envolvidos nesta integração são:

  • Azure AD B2C: O provedor de identidade SAML responsável pela autenticação de usuários finais.

  • Akamai Enterprise Application Access: O serviço de nuvem ZTNA que é responsável por proteger o acesso a aplicativos privados com a aplicação contínua da política ZTNA.

  • Akamai Enterprise Application Access Connector: um dispositivo virtual implantado no datacenter privado. Ele permite conectividade segura com aplicativos privados sem abrir portas de firewall de entrada do datacenter.

  • Aplicativo: um serviço ou aplicativo implantado em seu datacenter privado ao qual os usuários finais precisam acessar.

O usuário se autentica no Azure AD B2C (como SAML IdP) que responderá ao Akamai Enterprise Application Access (o provedor de serviços) com uma asserção SAML. O Akamai Enterprise Application Access mapeia informações da asserção SAML e constrói Declarações OpenID ou injeta Cabeçalhos HTTP contendo informações sobre o usuário. O Akamai Enterprise Application Access passará isso para o Aplicativo acessível através do conector Akamai Enterprise Application Access. Em nosso exemplo, o aplicativo exibirá o conteúdo desses cabeçalhos. No caso de uso do aplicativo OIDC ele exibirá as declarações do usuário.

O diagrama a seguir mostra como o Akamai Enterprise Application Access (EAA) se integra ao Azure AD B2C.

Screenshot shows the integration architecture.

  1. Um usuário final tenta acessar um aplicativo hospedado no datacenter privado usando a URL externa do aplicativo que está registrada no Akamai Enterprise Application Access.

  2. O Akamai Enterprise Application Access redireciona o usuário final não autenticado para o Azure AD B2C para autenticação.

  3. Após a autenticação bem-sucedida, o Azure AD B2C redireciona o usuário de volta para o Acesso ao Aplicativo Empresarial da Akamai com uma asserção SAML.

  4. O Akamai Enterprise Application Access usa as informações de identidade da asserção SAML para identificar o usuário e determinar se ele tem permissão para acessar o aplicativo solicitado.

  5. O Akamai Enterprise Application Access constrói declarações OIDC ou injeta cabeçalhos HTTP, que são enviados para o aplicativo.

  6. O aplicativo usa essas informações para identificar o usuário autenticado e cria uma sessão de aplicativo para o usuário final.

Integrado com o Akamai Enterprise Application Access

Para começar a usar o Akamai Enterprise Application Access, consulte o guia de introdução do Akamai Enterprise Application Access.

Etapa 1 - Adicionar o Azure AD B2C como um IdP SAML no Acesso ao Aplicativo Empresarial da Akamai

O Akamai Enterprise Application Access suporta federação SAML com IdPs na nuvem, como o Azure AD B2C. Adicione o Azure AD B2C como um IdP SAML de terceiros no Akamai Enterprise Application Access.

  1. Iniciar sessão no Enterprise Center https://control.akamai.com/

  2. No menu de navegação do Enterprise Center, selecione Application Access Identity Users Identity & Providers (Provedores de identidade de usuários > de identidade de acesso > ao aplicativo).

  3. Selecione Adicionar provedor de identidade (+).

  4. Insira um nome, uma descrição e selecione o tipo de provedor como SAML de terceiros.

  5. Selecione Continuar. A página de configuração do Provedor de Identidade é exibida.

  6. Em Configurações>Gerais , insira uma URL para o Servidor de Identidade. Você pode selecionar Usar domínio Akamai ou Usar seu domínio . Se você usar seu próprio domínio, use um certificado autoassinado ou use o certificado personalizado carregado.

  7. Em Autenticação , insira o mesmo URL definido na etapa anterior em Geral e selecione Salvar.

    Screenshot shows the akamai settings.

Etapa 2 - Registrar um aplicativo SAML no Azure AD B2C

  1. Obtenha os pacotes iniciais de políticas personalizadas do GitHub e, em seguida, atualize os arquivos XML no pacote inicial LocalAccounts com seu nome de locatário do Azure AD B2C:

    • Faça o download do arquivo .zip ou clone o repositório:

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    • Em todos os arquivos no diretório LocalAccounts , substitua a cadeia de caracteres yourtenant pelo nome do locatário do Azure AD B2C. Por exemplo, se o nome do seu locatário B2C for fabrikam, todas as instâncias de yourtenant.onmicrosoft.com tornar-se-ão fabrikam.onmicrosoft.com.

  2. Crie um certificado de assinatura para o Azure AD B2C para assinar a resposta SAML enviada ao Akamai Enterprise Application Access:

    a. Obtenha um certificado. Se você ainda não tiver um certificado, poderá usar um certificado autoassinado.

    b. Carregue o certificado em seu locatário do Azure AD B2C. Anote o nome, pois ele será necessário nas TechnicalProfile próximas etapas.

  3. Habilite sua política para se conectar a um aplicativo SAML.

    a. Abra LocalAccounts\TrustFrameworkExtensions.xml no pacote inicial de política personalizada. Encontre o elemento ClaimsProviders . Se ele não existir, TrustFrameworkPolicy adicione-o sob o elemento raiz e adicione o seguinte trecho XML para implementar seu gerador de resposta 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. Substitua o issuerUri pelo URL da Akamai definido na Configuração > Geral de Acesso ao Aplicativo Empresarial da Akamai na Etapa 1

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

    • Substitua B2C_1A_AkamaiSAMLSigningCert pelo nome da chave de política carregada.

Etapa 3 - Criar uma política de inscrição ou entrada configurada para SAML

  1. Crie uma cópia do SignUpOrSignin.xml arquivo no diretório de trabalho do seu pacote inicial e salve-o com um novo nome. Este artigo usa SignUpOrSigninSAML.xml como exemplo. Este ficheiro é o seu ficheiro de política para a entidade confiadora. Ele está configurado para emitir uma resposta JWT por padrão.

  2. Abra o SignUpOrSigninSAML.xml arquivo em seu editor preferido.

  3. Atualize tenant-name com o nome do seu locatário do Azure AD B2C, altere os PolicyId valores e da política para B2C_1A_signup_signin_saml e PublicPolicyUrihttp://<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. No final da jornada do usuário, o Azure AD B2C contém uma SendClaims etapa. Esta etapa faz referência ao perfil técnico do Emissor de Token. Para emitir uma resposta SAML em vez da resposta JWT padrão, modifique a SendClaims etapa para fazer referência ao novo perfil técnico do Emissor de Token SAML, Saml2AssertionIssuer.

    Adicione o seguinte trecho XML logo antes do <RelyingParty> elemento. Esse XML substitui a etapa 4 de orquestração na jornada do usuário, supondo que você esteja usando os pacotes iniciais de SignUpOrSignInLocalAccount política personalizada.

    Se você começou a partir de uma pasta diferente no pacote inicial ou personalizou a jornada do usuário adicionando ou removendo etapas de orquestração, verifique se o order número no elemento corresponde ao número especificado na jornada do usuário para a etapa do emissor do token. Por exemplo, nas outras pastas do pacote inicial, o número da etapa correspondente é 7 para , 6 para e 9 para SocialAndLocalAccountsSocialAccountsSocialAndLocalAccountsWithMfa.

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

    O elemento de terceira parte confiável determina qual protocolo seu aplicativo usa. A predefinição é OpenId. O Protocol elemento deve ser alterado para SAML. As declarações de saída criarão o mapeamento de declarações para a asserção SAML.

    Substitua o elemento inteiro <TechnicalProfile> no <RelyingParty> elemento pelo seguinte perfil técnico: XML.

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

    Seu arquivo de política final para a terceira parte confiável deve se parecer com o seguinte código XML:

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

Você pode seguir esse mesmo processo para implementar outros tipos de fluxos, por exemplo, login, redefinição de senha ou fluxos de edição de perfil.

Passo 4 - Carregue a sua política

Salve suas alterações e carregue os TrustFrameworkBase.xmlarquivos , o novo TrustFrameworkExtensions.xml e SignUpOrSigninSAML.xml o arquivo de política no portal do Azure.

  1. Inicie sessão no portal do Azure.

  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .

  3. No portal do Azure, procure e selecione Azure AD B2C.

  4. Em Políticas, selecione Identity Experience Framework. Selecione Carregar Política Personalizada e, em seguida, carregue os dois ficheiros de política que alterou, pela seguinte ordem:

    • O arquivo base, por exemplo TrustFrameworkBase.xml
    • A política de extensão, por exemplo TrustFrameworkExtensions.xml
    • Em seguida, a política de terceira parte confiável, como SignUpOrSigninSAML.xml.

Etapa 5 - Baixar os metadados SAML do IdP do Azure AD B2C

Depois que os arquivos de política são carregados, o Azure AD B2C usa as informações de configuração para gerar o documento de metadados SAML do provedor de identidade que o aplicativo usará. O documento de metadados SAML contém os locais dos serviços, como métodos de entrada, métodos de saída e certificados.

  • Os metadados da política do Azure AD B2C estão disponíveis na seguinte URL: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata

  • Substitua <tenant-name> pelo nome do seu locatário do Azure AD B2C. Substitua <policy-name> pelo nome (ID) da política. Eis um exemplo: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata

Transfira os metadados SAML e guarde-os localmente no seu dispositivo. Isso é necessário com a etapa a seguir para concluir a configuração no Akamai Enterprise Application Access.

Etapa 6 - Registrar o aplicativo Akamai Enterprise Application Access no Azure AD B2C

Para que o Azure AD B2C confie no Acesso ao Aplicativo Empresarial da Akamai, crie um registro de aplicativo do Azure AD B2C. O registro contém informações de configuração, como o ponto de extremidade de metadados do aplicativo.

  1. Inicie sessão no portal do Azure.

  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .

  3. No menu à esquerda, selecione Azure AD B2C. Ou, selecione Todos os serviços e, em seguida, procure e selecione Azure AD B2C.

  4. Selecione Registos de aplicações e, em seguida, selecione Novo registo.

  5. Insira um Nome para o aplicativo. Por exemplo, digite Akamai B2C Enterprise Application Access.

  6. Em Tipos de conta suportados, selecione Contas somente neste diretório organizacional (somente B2C - Locatário único).

  7. Em Redirecionar URI, selecione Web e insira a URL da Akamai definida em Configuração de Acesso ao Aplicativo Empresarial da Akamai\Geral na Etapa 1. Por exemplo, https://fabrikam.login.go.akamai-access.com/saml/sp/response.

  8. Selecione Registar.

Etapa 7 - Configurar seu aplicativo Akamai Enterprise Application Access no Azure AD B2C

Para SAML, você precisa configurar várias propriedades no manifesto do registro do aplicativo.

  1. No portal do Azure, vá para o registro do aplicativo que você criou na Etapa 3.

  2. Em Gerenciar, selecione Manifesto para abrir o editor de manifesto. Em seguida, modifique as propriedades descritas na seção a seguir.

Adicionar o identificador

Quando o aplicativo SAML Akamai Enterprise Application Access faz uma solicitação ao Azure AD B2C, a solicitação de autenticação SAML inclui um Issuer atributo. O valor desse atributo é normalmente o mesmo que o valor de metadados entityID do aplicativo. O Azure AD B2C usa esse valor para pesquisar o registro do aplicativo no diretório e ler a configuração. Para que essa pesquisa seja bem-sucedida, identifierUri no manifesto de registro do aplicativo deve ser preenchido com um valor que corresponda ao Issuer atributo.

Screenshot shows the b2c saml configuration.

No manifesto de registro, localize o parâmetro e adicione o identifierURIsvalor IssuerURI definido na Etapa 2, Azure AD B2C ClaimsProvider.

Exemplo:

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

Esse valor será o mesmo que está configurado nas solicitações SAML AuthN para EntityId no aplicativo e o entityID valor nos metadados do aplicativo. Você também precisará encontrar o parâmetro e definir o accessTokenAcceptedVersion valor como 2.

Importante

Se você não atualizar o accessTokenAcceptedVersion para 2 você receberá uma mensagem de erro exigindo um domínio verificado.

Etapa 8 - Definir configurações de autenticação para o IdP do Azure AD B2C no Acesso ao Aplicativo Empresarial da Akamai

Atualize seu Akamai Enterprise Application Access Azure AD B2C IdP com informações de autenticação, como URLs de terceira parte confiável.

  1. Iniciar sessão no Enterprise Center https://control.akamai.com/

  2. No menu de navegação do Enterprise Center, selecione Application Access Identity Users Identity & Providers (Provedores de identidade de usuários > de identidade de acesso > ao aplicativo).

  3. Selecione o nome do provedor de identidade criado na Etapa 1.

  4. Carregue o arquivo de metadados SAML do Azure AD B2C que você baixou na Etapa 5.

  5. Para carregar o arquivo .xml metadados, selecione Escolher arquivo.

    Screenshot shows the metadata file.

  6. Selecione Salvar e implantar.

Etapa 9 - Implantar os conectores de acesso a aplicativos corporativos da Akamai em seu datacenter privado

Para habilitar o acesso a um aplicativo privado, implante um ou mais conectores do Akamai Enterprise Application Access no datacenter privado onde seu aplicativo reside. Certifique-se de que os conectores possam chegar ao seu aplicativo privado e ter acesso de saída à nuvem da Akamai.

Etapa 10 - Definir um aplicativo de acesso no aplicativo corporativo da Akamai Acesso para o aplicativo privado

  1. Defina e implante um aplicativo Access no Akamai Enterprise Application Access.

  2. Quando você define o aplicativo Access

Opção 1: Cabeçalhos HTTP

Neste exemplo, usaremos um aplicativo que exibe cabeçalhos docker header-demo-app. Depois que o aplicativo for implantado em um ambiente privado e um conector for capaz de acessar o aplicativo, crie um aplicativo do tipo HTTP personalizado seguindo a documentação da Akamai Configure cabeçalhos HTTP personalizados para um aplicativo de acesso.

  1. Em Autenticação, selecione o IdP SAML do Azure AD B2C criado nas etapas anteriores.

Screenshot shows the akamai authn application.

  1. Na seção Avançado do aplicativo, mapeie o cabeçalho HTTP para os atributos SAML emitidos pelo Azure AD B2C na resposta SAML após uma autenticação bem-sucedida.

Exemplo:

Nome do Cabeçalho Atributo
PS-SSO-Primeiro http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
ps-sso-último http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
ps-sso-EmailAddress endereço de e-mail
PS-SSO-UID objectId

Screenshot shows the akamai header app mapping.

Teste o aplicativo selecionando a URL da Akamai para o aplicativo Web do tipo HTTP personalizado que você criou.

Screenshot shows the akamai header app results.

Opção 2: OpenID Connect

Neste exemplo, usaremos um aplicativo Web MVC ASP.NET que entra em usuários usando o middleware Open Web Interface for .NET (OWIN) e a plataforma de identidade da Microsoft.

  1. Configure a ponte OIDC para SAML no IdP SAML do Azure AD B2C criado com as etapas anteriores.

    Screenshot shows the akamai oidc app oidc settings.

  2. Crie um aplicativo do tipo HTTP personalizado seguindo Configurar o OpenID Connect para um aplicativo do Access.

  3. Em Autenticação, selecione o IdP SAML do Azure AD B2C criado nas etapas anteriores de acordo com o aplicativo Cabeçalho HTTP.

    Screenshot shows the akamai authn app settings.

  4. Em Avançado, selecione OpenID Connect 1.0 como mecanismo de autenticação e, em seguida, selecione Salvar.

    Screenshot shows the akamai oidc app authentication settings.

  5. Uma nova guia OpenID é exibida, copie a URL de descoberta necessária posteriormente nas etapas ao configurar o componente OWIN para testar o aplicativo.

    Screenshot shows the akamai oidc app settings.

  6. Na seção Declarações, defina as declarações que a Akamai emitirá para o aplicativo OIDC, mapeando seus valores para os atributos SAML fornecidos pelo Azure AD B2C na resposta SAML após uma autenticação bem-sucedida. Essas declarações precisam mapear o que você definiu na etapa anterior ao configurar a ponte OIDC para SAML no IdP SAML do Azure AD B2C.

    Screenshot shows the akamai oidc app claim settings.

  7. Substitua a classe de inicialização pelo código a seguir no aplicativo Web ASP.NET MVC.

    Essas poucas alterações configuram a concessão de fluxo de código de autorização, o código de autorização será resgatado para tokens no ponto de extremidade de token para o aplicativo e introduz o Endereço de Metadados para definir o ponto de extremidade de descoberta para obter metadados da 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. No arquivo, adicione o web.config endereço de metadados, substitua clientId, clientsecret, authority, redirectUri e PostLogoutRedirectUri pelos valores do aplicativo Akamai em appSettings.

    Você pode encontrar esses valores na etapa anterior 5 na guia OpenID para o aplicativo HTTP Akamai, onde você criou Discovery URL=MetadataAddresso . redirectUri é o endereço local para o conector Akamai resolver para o aplicativo OIDC local. Authority é a authorization_endpoint que pode encontrar no seu .well-known/openid-configurationdocumento.

    URL de descoberta: 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>
    

    Teste o aplicativo selecionando a URL da Akamai para o aplicativo Web personalizado do tipo http criado.

    Screenshot shows the akamai oidc app results.

Testar a solução

  1. Navegue até a URL do aplicativo, usando a URL externa especificada no Akamai Enterprise Application Access.

  2. O usuário não autenticado é redirecionado para a página de entrada do Azure AD B2C.

  3. Selecione o IdP na lista na página.

  4. Entre como um usuário final usando credenciais vinculadas ao Azure AD B2C.

  5. Após a autenticação bem-sucedida, o usuário final será redirecionado de volta para o aplicativo e conectado ao aplicativo como o usuário final.

Recursos adicionais