Konfigurowanie usługi Azure Active Directory B2C przy użyciu usługi Akamai Enterprise Application Access na potrzeby logowania jednokrotnego i bezpiecznego dostępu hybrydowego

Z tego przykładowego samouczka dowiesz się, jak zintegrować uwierzytelnianie usługi Azure Active Directory B2C (Azure AD B2C) z aplikacjami dla przedsiębiorstw Akamai. Akamai Enterprise Application Access to rozwiązanie ZTNA (Zero Trust Network Access), które umożliwia bezpieczny dostęp zdalny do nowoczesnych i starszych aplikacji, które znajdują się w prywatnych centrach danych. Usługa Akamai Enterprise Application Access federates with Identity Provider (IdP) Azure AD B2C (Dostawcy tożsamości) do uwierzytelniania użytkowników, a następnie używa swoich zasad autoryzacji do ciągłej oceny tożsamości, urządzenia, aplikacji i kontekstu żądania przed zezwoleniem na dostęp do aplikacji prywatnych.

Ta funkcja jest dostępna tylko dla zasad niestandardowych. Aby uzyskać instrukcje konfiguracji, wybierz pozycję Zasady niestandardowe w poprzednim selektorze.

Wymagania wstępne

Aby rozpocząć pracę, potrzebne są następujące elementy:

  • Umowa Akamai Enterprise Access. Jeśli go nie masz, uzyskaj bezpłatną wersję próbną.

  • Subskrypcja Azure. Jeśli nie masz subskrypcji, możesz uzyskać bezpłatne konto.

  • Dzierżawa usługi Azure AD B2C połączona z subskrypcją platformy Azure.

  • Urządzenie wirtualne wdrożone za zaporą w centrum danych lub w środowiskach chmury hybrydowej w celu wdrożenia łącznika Akamai Enterprise Application Access

  • Aplikacja, która używa nagłówków do uwierzytelniania. W tym przykładzie użyjemy aplikacji, która wyświetla nagłówki docker header-demo-app.

  • LUB aplikacja openID Połączenie (OIDC). W tym przykładzie użyjemy aplikacji internetowej ASP.NET MVC, która loguje użytkowników przy użyciu oprogramowania pośredniczącego Open Web Interface for .NET (OWIN) i Platforma tożsamości Microsoft.

Opis scenariusza

W tym scenariuszu włączysz uwierzytelnianie usługi Azure AD B2C dla użytkowników końcowych podczas próby uzyskania dostępu do prywatnych aplikacji zabezpieczonych przez program Akamai Enterprise Application Access.

Składniki związane z tą integracją to:

  • Azure AD B2C: dostawca tożsamości SAML odpowiedzialny za uwierzytelnianie użytkowników końcowych.

  • Akamai Enterprise Application Access: usługa W chmurze ZTNA, która jest odpowiedzialna za zabezpieczanie dostępu do aplikacji prywatnych za pomocą ciągłego wymuszania zasad ZTNA.

  • Akamai Enterprise Application Access Połączenie or: urządzenie wirtualne wdrożone w prywatnym centrum danych. Umożliwia bezpieczną łączność z aplikacjami prywatnymi bez otwierania jakichkolwiek portów zapory dla ruchu przychodzącego centrum danych.

  • Aplikacja: usługa lub aplikacja wdrożona w prywatnym centrum danych, do którego użytkownicy końcowi potrzebują dostępu.

Użytkownik uwierzytelnia się w usłudze Azure AD B2C (jako dostawcy tożsamości SAML), który będzie reagować na dostęp do aplikacji przedsiębiorstwa Akamai (dostawca usług) przy użyciu asercji SAML. Usługa Akamai Enterprise Application Access mapuje informacje z asercji SAML i tworzy oświadczenia OpenID lub wprowadza nagłówki HTTP zawierające informacje o użytkowniku. Następnie program Akamai Enterprise Application Access przekaże go do aplikacji dostępnej za pośrednictwem łącznika Akamai Enterprise Application Access. W naszym przykładzie aplikacja wyświetli zawartość tych nagłówków. W przypadku użycia aplikacji OIDC będą wyświetlane oświadczenia użytkownika.

Na poniższym diagramie pokazano, jak usługa Akamai Enterprise Application Access (EAA) integruje się z usługą Azure AD B2C.

Screenshot shows the integration architecture.

  1. Użytkownik końcowy próbuje uzyskać dostęp do aplikacji hostowanej w prywatnym centrum danych przy użyciu zewnętrznego adresu URL aplikacji zarejestrowanego w programie Akamai Enterprise Application Access.

  2. Usługa Akamai Enterprise Application Access przekierowuje nieuwierzytelnionego użytkownika końcowego do usługi Azure AD B2C na potrzeby uwierzytelniania.

  3. Po pomyślnym uwierzytelnieniu usługa Azure AD B2C przekierowuje użytkownika z powrotem do usługi Akamai Enterprise Application Access przy użyciu asercji SAML.

  4. Program Akamai Enterprise Application Access używa informacji o tożsamości z asercji SAML w celu zidentyfikowania użytkownika i ustalenia, czy użytkownik może uzyskać dostęp do żądanej aplikacji.

  5. Usługa Akamai Enterprise Application Access tworzy oświadczenia OIDC lub wprowadza nagłówki HTTP, które są wysyłane do aplikacji.

  6. Aplikacja używa tych informacji do identyfikowania uwierzytelnionego użytkownika i tworzy sesję aplikacji dla użytkownika końcowego.

Dołączanie przy użyciu programu Akamai Enterprise Application Access

Aby rozpocząć pracę z usługą Akamai Enterprise Application Access, zapoznaj się z przewodnikiem wprowadzenie do usługi Akamai Enterprise Application Access.

Krok 1. Dodawanie usługi Azure AD B2C jako dostawcy tożsamości SAML w usłudze Akamai Enterprise Application Access

Usługa Akamai Enterprise Application Access obsługuje federację SAML z dostawcami tożsamości w chmurze, takimi jak Azure AD B2C. Dodaj usługę Azure AD B2C jako dostawcę tożsamości SAML innej firmy w usłudze Akamai Enterprise Application Access.

  1. Zaloguj się do Centrum przedsiębiorstwa https://control.akamai.com/

  2. W menu nawigacyjnym Enterprise Center wybierz pozycję Dostawcy tożsamości użytkowników > tożsamości & dostępu do > aplikacji.

  3. Wybierz pozycję Dodaj dostawcę tożsamości (+).

  4. Wprowadź nazwę, opis i wybierz typ dostawcy jako SAML innej firmy.

  5. Wybierz Kontynuuj. Zostanie wyświetlona strona konfiguracja dostawcy tożsamości.

  6. W Ustawienia> Ogólne wprowadź adres URL serwera tożsamości. Możesz wybrać pozycję Użyj domeny Akamai lub Użyj domeny. Jeśli używasz własnej domeny, użyj certyfikatu z podpisem własnym lub użyj przekazanego certyfikatu niestandardowego.

  7. W obszarze Uwierzytelnianie wprowadź ten sam adres URL, co zdefiniowano w poprzednim kroku w obszarze Ogólne, a następnie wybierz pozycję Zapisz.

    Screenshot shows the akamai settings.

Krok 2. Rejestrowanie aplikacji SAML w usłudze Azure AD B2C

  1. Pobierz pakiety początkowe zasad niestandardowych z usługi GitHub, a następnie zaktualizuj pliki XML w pakiecie startowym LocalAccounts przy użyciu nazwy dzierżawy usługi Azure AD B2C:

    • Pobierz plik zip lub sklonuj repozytorium:

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    • We wszystkich plikach w katalogu LocalAccounts zastąp ciąg yourtenant nazwą dzierżawy usługi Azure AD B2C. Jeśli na przykład nazwa dzierżawy B2C to fabrikam, wszystkie wystąpienia yourtenant.onmicrosoft.com stają się fabrikam.onmicrosoft.com.

  2. Utwórz certyfikat podpisywania dla usługi Azure AD B2C, aby podpisać odpowiedź SAML wysłaną do usługi Akamai Enterprise Application Access:

    a. Uzyskaj certyfikat. Jeśli nie masz jeszcze certyfikatu, możesz użyć certyfikatu z podpisem własnym.

    b. Przekaż certyfikat w dzierżawie usługi Azure AD B2C. Zanotuj nazwę, ponieważ będzie potrzebna w TechnicalProfile wymienionych w następnych krokach.

  3. Włącz zasady w celu nawiązania połączenia z aplikacją SAML.

    a. Otwórz LocalAccounts\TrustFrameworkExtensions.xml plik w niestandardowym pakiecie startowym zasad. Znajdź element ClaimsProviders. Jeśli nie istnieje, dodaj go pod elementem głównym i dodaj następujący fragment kodu XML, TrustFrameworkPolicy aby zaimplementować generator odpowiedzi 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. Zastąp element issuerUri adresem URL Akamai zdefiniowanym w sekcji Ogólne ustawienie > dostępu do aplikacji dla przedsiębiorstw akamai w kroku 1

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

    • Zastąp B2C_1A_AkamaiSAMLSigningCert nazwą przekazanego klucza zasad.

Krok 3. Tworzenie zasad rejestracji lub logowania skonfigurowanych dla protokołu SAML

  1. Utwórz kopię SignUpOrSignin.xml pliku w katalogu roboczym pakietu startowego i zapisz go pod nową nazwą. W tym artykule użyto SignUpOrSigninSAML.xml przykładu. Ten plik jest plikiem zasad dla jednostki uzależnionej. Domyślnie jest skonfigurowany do wystawiania odpowiedzi JWT.

  2. SignUpOrSigninSAML.xml Otwórz plik w preferowanym edytorze.

  3. Zaktualizuj tenant-name ciąg nazwą dzierżawy usługi Azure AD B2C, zmień PolicyId wartości i PublicPolicyUri zasad na B2C_1A_signup_signin_saml i 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. Po zakończeniu podróży użytkownika usługa Azure AD B2C zawiera SendClaims krok. Ten krok odwołuje się do profilu technicznego wystawcy tokenu. Aby wydać odpowiedź SAML zamiast domyślnej odpowiedzi JWT, zmodyfikuj SendClaims krok, aby odwołać się do nowego profilu technicznego wystawcy tokenu SAML, Saml2AssertionIssuer.

    Dodaj następujący fragment kodu XML tuż przed elementem <RelyingParty> . Ten kod XML zastępuje aranżację krok 4 w podróży użytkownika przy założeniu SignUpOrSignInLocalAccount , że używasz pakietów startowych zasad niestandardowych.

    Jeśli rozpoczęto pracę z innego folderu w pakiecie startowym lub dostosowano podróż użytkownika przez dodanie lub usunięcie kroków aranżacji, upewnij się, że liczba w order elemencie odpowiada liczbie określonej w podróży użytkownika na potrzeby kroku wystawcy tokenu. Na przykład w innych folderach pakietów startowych odpowiedni numer kroku to 7 dla SocialAndLocalAccounts, 6 dla SocialAccounts, i 9 dla SocialAndLocalAccountsWithMfa.

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

    Element jednostki uzależnionej określa protokół używany przez aplikację. Wartość domyślna to OpenId. Element Protocol musi zostać zmieniony na SAML. Oświadczenia wyjściowe spowodują utworzenie mapowania oświadczeń na asercji SAML.

    Zastąp cały <TechnicalProfile> element w elemencie <RelyingParty> następującym kodem XML profilu technicznego.

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

    Ostateczny plik zasad jednostki uzależnionej powinien wyglądać podobnie do następującego kodu 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>
    

Uwaga

Możesz wykonać ten sam proces, aby zaimplementować inne typy przepływów, na przykład logowanie, resetowanie hasła lub przepływy edytowania profilu.

Krok 4. Przekazywanie zasad

Zapisz zmiany i przekaż TrustFrameworkBase.xmlpliki nowych TrustFrameworkExtensions.xml zasad i SignUpOrSigninSAML.xml w witrynie Azure Portal.

  1. Zaloguj się w witrynie Azure Portal.

  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.

  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.

  4. W obszarze Zasady wybierz pozycję Identity Experience Framework. Wybierz pozycję Przekaż zasady niestandardowe, a następnie przekaż dwa zmienione pliki zasad w następującej kolejności:

    • Plik podstawowy, na przykład TrustFrameworkBase.xml
    • Zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml
    • Następnie zasady jednostki uzależnionej, takie jak SignUpOrSigninSAML.xml.

Krok 5. Pobieranie metadanych SAML dostawcy tożsamości usługi Azure AD B2C

Po przekazaniu plików zasad usługa Azure AD B2C używa informacji o konfiguracji do generowania dokumentu metadanych SAML dostawcy tożsamości, który będzie używany przez aplikację. Dokument metadanych SAML zawiera lokalizacje usług, takie jak metody logowania, metody wylogowywanie i certyfikaty.

  • Metadane zasad usługi Azure AD B2C są dostępne pod następującym adresem URL: https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata

  • Zastąp <tenant-name> ciąg nazwą dzierżawy usługi Azure AD B2C. Zastąp <policy-name> ciąg nazwą (ID) zasad. Oto przykład: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata

Pobierz metadane SAML i zapisz je lokalnie na urządzeniu. Jest to wymagane w następnym kroku, aby ukończyć konfigurację w usłudze Akamai Enterprise Application Access.

Krok 6. Rejestrowanie aplikacji Akamai Enterprise Application Access w usłudze Azure AD B2C

Aby usługa Azure AD B2C ufała usłudze Akamai Enterprise Application Access, utwórz rejestrację aplikacji usługi Azure AD B2C. Rejestracja zawiera informacje o konfiguracji, takie jak punkt końcowy metadanych aplikacji.

  1. Zaloguj się w witrynie Azure Portal.

  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.

  3. W menu po lewej stronie wybierz pozycję Azure AD B2C. Możesz też wybrać pozycję Wszystkie usługi , a następnie wyszukać i wybrać pozycję Azure AD B2C.

  4. Wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Nowa rejestracja.

  5. Wprowadź nazwę aplikacji. Na przykład wprowadź Akamai B2C Enterprise Application Access.

  6. W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym (tylko B2C — pojedyncza dzierżawa).

  7. W obszarze Identyfikator URI przekierowania wybierz pozycję Sieć Web, a następnie wprowadź adres URL Akamai zdefiniowany w obszarze Akamai Enterprise Application Access Setting\General w kroku 1. Na przykład https://fabrikam.login.go.akamai-access.com/saml/sp/response.

  8. Wybierz pozycję Zarejestruj.

Krok 7. Konfigurowanie aplikacji Akamai Enterprise Application Access w usłudze Azure AD B2C

W przypadku protokołu SAML należy skonfigurować kilka właściwości w manifeście rejestracji aplikacji.

  1. W witrynie Azure Portal przejdź do rejestracji aplikacji utworzonej w kroku 3.

  2. W obszarze Zarządzaj wybierz pozycję Manifest , aby otworzyć edytor manifestu. Następnie zmodyfikuj właściwości opisane w poniższej sekcji.

Dodawanie identyfikatora

Gdy aplikacja SAML dostępu do aplikacji Akamai Enterprise Application Access wysyła żądanie do usługi Azure AD B2C, żądanie uwierzytelniania SAML zawiera Issuer atrybut. Wartość tego atrybutu jest zwykle taka sama jak wartość metadanych entityID aplikacji. Usługa Azure AD B2C używa tej wartości do wyszukania rejestracji aplikacji w katalogu i odczytania konfiguracji. Aby to wyszukiwanie powiodło się, identifierUri w manifeście rejestracji aplikacji musi zostać wypełniona wartością zgodną z atrybutem Issuer .

Screenshot shows the b2c saml configuration.

W manifeście rejestracji znajdź identifierURIs parametr i dodaj wartość IssuerURI zdefiniowaną w kroku 2, Azure AD B2C ClaimsProvider.

Przykład:

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

Ta wartość będzie taka sama, jak wartość skonfigurowana w żądaniach AuthN protokołu SAML dla EntityId aplikacji oraz entityID wartość w metadanych aplikacji. Należy również znaleźć accessTokenAcceptedVersion parametr i ustawić wartość na 2.

Ważne

Jeśli nie zaktualizujesz accessTokenAcceptedVersion2 elementu , zostanie wyświetlony komunikat o błędzie wymagający zweryfikowanej domeny.

Krok 8. Konfigurowanie ustawień uwierzytelniania dla dostawcy tożsamości usługi Azure AD B2C w usłudze Akamai Enterprise Application Access

Zaktualizuj dostawcę tożsamości usługi Azure AD B2C w usłudze Akamai Enterprise Application Access przy użyciu informacji o uwierzytelnianiu, takich jak adresy URL jednostek uzależnionych.

  1. Zaloguj się do Centrum przedsiębiorstwa https://control.akamai.com/

  2. W menu nawigacyjnym Enterprise Center wybierz pozycję Dostawcy tożsamości użytkowników > tożsamości & dostępu do > aplikacji.

  3. Wybierz nazwę dostawcy tożsamości utworzoną w kroku 1.

  4. Przekaż plik metadanych SAML usługi Azure AD B2C pobrany w kroku 5.

  5. Aby przekazać plik metadata.xml, wybierz pozycję Wybierz plik.

    Screenshot shows the metadata file.

  6. Wybierz pozycję Zapisz i wdróż.

Krok 9. Wdrażanie usługi Akamai Enterprise Application Access Połączenie or w prywatnym centrum danych

Aby umożliwić dostęp do aplikacji prywatnej, wdróż co najmniej jeden łącznik usługi Akamai Enterprise Application Access w prywatnym centrum danych, w którym znajduje się aplikacja. Upewnij się, że łączniki mogą uzyskiwać dostęp do aplikacji prywatnej i mieć dostęp wychodzący do chmury Akamai.

Krok 10. Definiowanie aplikacji dostępu w usłudze Akamai Enterprise Application Access dla aplikacji prywatnej

  1. Definiowanie i wdrażanie aplikacji programu Access w usłudze Akamai Enterprise Application Access.

  2. Podczas definiowania aplikacji programu Access

Opcja 1. Nagłówki HTTP

W tym przykładzie użyjemy aplikacji, która wyświetla nagłówki docker header-demo-app. Po wdrożeniu aplikacji w środowisku prywatnym i łącznik może uzyskać dostęp do aplikacji, utwórz niestandardową aplikację typu HTTP zgodnie z dokumentacją usługi Akamai Konfigurowanie niestandardowych nagłówków HTTP dla aplikacji dostępu.

  1. W obszarze Uwierzytelnianie wybierz dostawcę tożsamości SAML usługi Azure AD B2C utworzonego w poprzednich krokach.

Screenshot shows the akamai authn application.

  1. W sekcji Zaawansowane aplikacji zamapuj nagłówek HTTP na atrybuty SAML wystawione przez usługę Azure AD B2C w odpowiedzi SAML po pomyślnym uwierzytelnieniu.

Przykład:

Nazwa nagłówka Atrybut
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.

Przetestuj aplikację, wybierając adres URL Akamai dla utworzonej aplikacji internetowej niestandardowego typu HTTP.

Screenshot shows the akamai header app results.

Opcja 2. Połączenie OpenID

W tym przykładzie użyjemy ASP.NET aplikacji internetowej MVC, która loguje użytkowników przy użyciu oprogramowania pośredniczącego Open Web Interface for .NET (OWIN) i Platforma tożsamości Microsoft.

  1. Skonfiguruj mostkowanie OIDC do protokołu SAML w usłudze Azure AD B2C SAML IdP utworzonej przy użyciu poprzednich kroków.

    Screenshot shows the akamai oidc app oidc settings.

  2. Utwórz niestandardową aplikację typu HTTP po skonfigurowaniu Połączenie OpenID dla aplikacji programu Access.

  3. W obszarze Uwierzytelnianie wybierz dostawcę tożsamości SAML usługi Azure AD B2C utworzonego w poprzednich krokach zgodnie z aplikacją nagłówka HTTP.

    Screenshot shows the akamai authn app settings.

  4. W obszarze Zaawansowane wybierz pozycję OpenID Połączenie 1.0 jako mechanizm uwierzytelniania, a następnie wybierz pozycję Zapisz.

    Screenshot shows the akamai oidc app authentication settings.

  5. Zostanie wyświetlona nowa karta OpenID , skopiuj adres URL odnajdywania, który jest potrzebny w dalszej części kroków podczas konfigurowania składnika OWIN na potrzeby testowania aplikacji.

    Screenshot shows the akamai oidc app settings.

  6. W sekcji Oświadczenia zdefiniuj oświadczenia, które usługa Akamai będzie wystawiać dla aplikacji OIDC, mapując ich wartości na atrybuty SAML udostępniane przez usługę Azure AD B2C w odpowiedzi SAML po pomyślnym uwierzytelnieniu. Te oświadczenia muszą mapować zdefiniowane w poprzednim kroku informacje podczas konfigurowania OIDC do mostkowania SAML w usłudze Azure AD B2C SAML IdP.

    Screenshot shows the akamai oidc app claim settings.

  7. Zastąp klasę uruchamiania następującym kodem w aplikacji internetowej ASP.NET MVC.

    Te kilka zmian konfiguruje udzielanie przepływu kodu autoryzacji, kod autoryzacji zostanie zrealizowany dla tokenów w punkcie końcowym tokenu dla aplikacji i wprowadza adres metadanych w celu ustawienia punktu końcowego odnajdywania na potrzeby uzyskiwania metadanych z usługi 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. web.config W pliku dodaj adres metadanych, zastąp wartości clientId, clientsecret, authority, redirectUri i PostLogoutRedirectUri wartościami z aplikacji Akamai w pliku appSettings.

    Te wartości można znaleźć w poprzednim kroku 5 na karcie OpenID aplikacji HTTP Akamai, w której utworzono Discovery URL=MetadataAddresselement . redirectUri jest adresem lokalnym łącznika Akamai rozpoznawanym przez lokalną aplikację OIDC. Authorityto authorization_endpoint, które można znaleźć w dokumencie.well-known/openid-configuration.

    Adres URL odnajdywania: 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>
    

    Przetestuj aplikację, wybierając adres URL Akamai dla utworzonej niestandardowej aplikacji internetowej typu http.

    Screenshot shows the akamai oidc app results.

Testowanie rozwiązania

  1. Przejdź do adresu URL aplikacji przy użyciu zewnętrznego adresu URL określonego w aplikacji dla przedsiębiorstw usługi Akamai.

  2. Nieuwierzytelniony użytkownik jest przekierowywany do strony logowania usługi Azure AD B2C.

  3. Wybierz dostawcę tożsamości z listy na stronie.

  4. Zaloguj się jako użytkownik końcowy przy użyciu poświadczeń połączonych z usługą Azure AD B2C.

  5. Po pomyślnym uwierzytelnieniu użytkownik końcowy zostanie przekierowany z powrotem do aplikacji i zalogowany do aplikacji jako użytkownik końcowy.

Dodatkowe zasoby