Azure Active Directory B2C configureren met Akamai Enterprise Application Access voor eenmalige aanmelding en beveiligde hybride toegang
In deze voorbeeldzelfstudie leert u hoe u Verificatie van Azure Active Directory B2C (Azure AD B2C) integreert met Akamai Enterprise Application Access. Akamai Enterprise Application Access is een ZTNA-oplossing (Zero Trust Network Access) waarmee veilige externe toegang tot moderne en verouderde toepassingen in privédatacentra mogelijk is. Akamai Enterprise Application Access federatieert met IdP (Identity Provider) Azure AD B2C om gebruikers te verifiëren en gebruikt vervolgens het autorisatiebeleid om doorlopende evaluatie van de identiteit, het apparaat, de toepassing en de aanvraagcontext uit te voeren voordat toegang tot privétoepassingen wordt toegestaan.
Deze functie is alleen beschikbaar voor aangepast beleid. Voor configuratiestappen selecteert u Aangepast beleid in de voorgaande selector.
Vereisten
U hebt u het volgende nodig om aan de slag te gaan:
Een Akamai Enterprise Access-contract. Als u er nog geen hebt, kunt u een gratis proefversie krijgen.
Een Azure-abonnement. Als u geen abonnement hebt, kunt u een gratis account krijgen.
Een Azure AD B2C-tenant die is gekoppeld aan uw Azure-abonnement.
Een virtueel apparaat dat is geïmplementeerd achter de firewall in uw datacenter of in hybride cloudomgevingen om de Akamai Enterprise Application Access-connector te implementeren
Een toepassing die headers gebruikt voor verificatie. In dit voorbeeld gebruiken we een toepassing die headers docker header-demo-app weergeeft.
OF een OpenID Verbinding maken -toepassing (OIDC). In dit voorbeeld gebruiken we een ASP.NET MVC-web-app waarmee gebruikers worden aangemeld met behulp van de OWIN-middleware (Open Web Interface for .NET) en het Microsoft Identity Platform.
Beschrijving van scenario
In dit scenario schakelt u Azure AD B2C-verificatie in voor eindgebruikers terwijl ze toegang proberen te krijgen tot privétoepassingen die zijn beveiligd door Akamai Enterprise Application Access.
De onderdelen die betrokken zijn bij deze integratie zijn:
Azure AD B2C: de SAML-id-provider die verantwoordelijk is voor het verifiëren van eindgebruikers.
Akamai Enterprise Application Access: de ZTNA-cloudservice die verantwoordelijk is voor het beveiligen van de toegang tot privétoepassingen met continue afdwinging van ZTNA-beleid.
Akamai Enterprise Application Access Verbinding maken or: een virtueel apparaat dat is geïmplementeerd in het privé-datacenter. Het maakt beveiligde connectiviteit met privé-apps mogelijk zonder binnenkomende firewallpoorten voor datacenters te openen.
Toepassing: Een service of toepassing die is geïmplementeerd in uw privé-datacenter waartoe eindgebruikers toegang nodig hebben.
De gebruiker verifieert zich bij Azure AD B2C (als SAML IdP) die reageert op Akamai Enterprise Application Access (de serviceprovider) met een SAML-assertie. Akamai Enterprise Application Access wijst informatie toe vanuit de SAML-assertie en bouwt OpenID-claims of injecteert HTTP-headers die informatie over de gebruiker bevatten. Akamai Enterprise Application Access geeft deze vervolgens door aan de toepassing die toegankelijk is via de Akamai Enterprise Application Access-connector. In ons voorbeeld wordt in de toepassing de inhoud van deze headers weergegeven. In het gebruiksvoorbeeld van de OIDC-toepassing worden de claims van de gebruiker weergegeven.
In het volgende diagram ziet u hoe Akamai Enterprise Application Access (EAA) kan worden geïntegreerd met Azure AD B2C.
Een eindgebruiker probeert toegang te krijgen tot een toepassing die wordt gehost in het privé datacenter met behulp van de externe URL van de toepassing die is geregistreerd in Akamai Enterprise Application Access.
Akamai Enterprise Application Access leidt de niet-geverifieerde eindgebruiker om naar Azure AD B2C voor verificatie.
Nadat de verificatie is geslaagd, leidt Azure AD B2C de gebruiker terug naar Akamai Enterprise Application Access met een SAML-assertie.
Akamai Enterprise Application Access gebruikt de identiteitsgegevens van de SAML-assertie om de gebruiker te identificeren en te bepalen of de gebruiker toegang heeft tot de aangevraagde toepassing.
Akamai Enterprise Application Access maakt OIDC-claims of injecteert HTTP-headers, die naar de toepassing worden verzonden.
De toepassing gebruikt deze informatie om de geverifieerde gebruiker te identificeren en maakt een toepassingssessie voor de eindgebruiker.
Onboarden met Akamai Enterprise Application Access
Raadpleeg de introductiehandleiding voor Akamai Enterprise Application Access om aan de slag te gaan met Akamai Enterprise Application Access.
Stap 1: Azure AD B2C toevoegen als SAML IdP in Akamai Enterprise Application Access
Akamai Enterprise Application Access ondersteunt SAML-federatie met cloud-id's zoals Azure AD B2C. Voeg Azure AD B2C toe als EEN SAML IdP van derden in Akamai Enterprise Application Access.
Aanmelden bij Enterprise Center https://control.akamai.com/
Selecteer in het navigatiemenu van Enterprise Center de id-providers voor identiteitsgebruikers & >van toepassingstoegang.>
Selecteer Id-provider toevoegen (+).
Voer een naam, beschrijving in en selecteer het providertype als SAML van derden.
Selecteer Continue. De configuratiepagina van de id-provider wordt weergegeven.
Voer in Instellingen> General een URL in voor de identiteitsserver. U kunt Akamai-domein gebruiken of Uw domein gebruiken selecteren. Als u uw eigen domein gebruikt, gebruikt u een zelfondertekend certificaat of gebruikt u het geüploade aangepaste certificaat.
Voer in Verificatie dezelfde URL in als gedefinieerd in de vorige stap in Algemeen en Selecteer Opslaan.
Stap 2: Een SAML-toepassing registreren in Azure AD B2C
Haal de aangepaste beleidsstartpakketten op uit GitHub en werk vervolgens de XML-bestanden in het starterspakket LocalAccounts bij met de naam van uw Azure AD B2C-tenant:
Download het ZIP-bestand of kloon de opslagplaats:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
Vervang in alle bestanden in de map LocalAccounts de tekenreeks
yourtenant
door de naam van uw Azure AD B2C-tenant. Als de naam van uw B2C-tenant bijvoorbeeld isfabrikam
, worden alle exemplaren vanyourtenant.onmicrosoft.com
dezefabrikam.onmicrosoft.com
tenant.
Maak een handtekeningcertificaat voor Azure AD B2C om het SAML-antwoord te ondertekenen dat is verzonden naar Akamai Enterprise Application Access:
a. Haal een certificaat op. Als u nog geen certificaat hebt, kunt u een zelfondertekend certificaat gebruiken.
b. Upload het certificaat in uw Azure AD B2C-tenant. Noteer de naam zoals deze nodig is in de
TechnicalProfile
volgende stappen.Schakel uw beleid in om verbinding te maken met een SAML-toepassing.
a. Open
LocalAccounts\TrustFrameworkExtensions.xml
het aangepaste starterspakket voor beleid. Ga naar het element ClaimsProviders. Als deze niet bestaat, voegt u het toe onder het hoofdelementTrustFrameworkPolicy
en voegt u het volgende XML-fragment toe om uw SAML-antwoordgenerator te implementeren:<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. Vervang de
issuerUri
url die is gedefinieerd in de Akamai Enterprise Application Access Setting > General in stap 1Voorbeeld
<Item Key="IssuerUri">https://fabrikam.login.go.akamai-access.com/saml/sp/response</Item>
Vervang B2C_1A_AkamaiSAMLSigningCert door de naam van de geüploade beleidssleutel.
Stap 3: een registratie- of aanmeldingsbeleid maken dat is geconfigureerd voor SAML
Maak een kopie van het bestand in de werkmap van uw
SignUpOrSignin.xml
starterspakket en sla het op met een nieuwe naam. In dit artikel wordt een voorbeeld gebruiktSignUpOrSigninSAML.xml
. Dit bestand is uw beleidsbestand voor de relying party. Deze is geconfigureerd om standaard een JWT-antwoord uit te geven.Open het
SignUpOrSigninSAML.xml
bestand in de gewenste editor.Werk
tenant-name
bij met de naam van uw Azure AD B2C-tenant, wijzig dePolicyId
enPublicPolicyUri
waarden van het beleid inB2C_1A_signup_signin_saml
enhttp://<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">
Aan het einde van het gebruikerstraject bevat Azure AD B2C een
SendClaims
stap. Deze stap verwijst naar het technische profiel tokenverlener. Als u een SAML-antwoord wilt uitgeven in plaats van het standaard-JWT-antwoord, wijzigt u deSendClaims
stap om te verwijzen naar het nieuwe technische profiel samL-tokenverlener,Saml2AssertionIssuer
.Voeg het volgende XML-fragment toe vlak voor het
<RelyingParty>
element. Met deze XML wordt indelingsstap 4 in hetSignUpOrSignIn
gebruikerstraject overschreven, ervan uitgaande dat u deLocalAccount
starter packs voor aangepast beleid gebruikt.Als u bent begonnen vanuit een andere map in het starterspakket of als u het gebruikerstraject hebt aangepast door indelingsstappen toe te voegen of te verwijderen, moet u ervoor zorgen dat het nummer in het
order
element overeenkomt met het nummer dat is opgegeven in het gebruikerstraject voor de stap van de tokenverlener. In de andere mappen met starterspakketten is het bijbehorende stapnummer bijvoorbeeld 7 voorSocialAndLocalAccounts
, 6 voorSocialAccounts
en 9 voorSocialAndLocalAccountsWithMfa
.<UserJourneys> <UserJourney Id="SignUpOrSignIn"> <OrchestrationSteps> <OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/> </OrchestrationSteps> </UserJourney> </UserJourneys>
Het relying party-element bepaalt welk protocol uw toepassing gebruikt. De standaardwaarde is
OpenId
. HetProtocol
element moet worden gewijzigd inSAML
. Met de uitvoerclaims wordt de claimtoewijzing gemaakt aan de SAML-assertie.Vervang het hele
<TechnicalProfile>
element in het element door de volgende XML van het<RelyingParty>
technische profiel.<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>
Het uiteindelijke beleidsbestand voor de relying party moet eruitzien als de volgende XML-code:
<?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>
Notitie
U kunt hetzelfde proces volgen om andere typen stromen te implementeren, zoals aanmelding, wachtwoordherstel of profielbewerkingsstromen.
Stap 4: uw beleid uploaden
Sla uw wijzigingen op en upload de TrustFrameworkBase.xml
, de nieuwe TrustFrameworkExtensions.xml
en SignUpOrSigninSAML.xml
beleidsbestanden naar Azure Portal.
Meld u aan bij de Azure-portal.
Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
Ga in Azure Portal naar Azure AD B2C en selecteer dit.
Selecteer onder Beleid de optie Identity Experience Framework. Selecteer Aangepast beleid uploaden en upload vervolgens de twee beleidsbestanden die u hebt gewijzigd, in de volgende volgorde:
- Het basisbestand, bijvoorbeeld
TrustFrameworkBase.xml
- Het uitbreidingsbeleid, bijvoorbeeld
TrustFrameworkExtensions.xml
- Vervolgens het relying party-beleid, zoals
SignUpOrSigninSAML.xml
.
- Het basisbestand, bijvoorbeeld
Stap 5: de SAML-metagegevens van Azure AD B2C IdP downloaden
Nadat de beleidsbestanden zijn geüpload, gebruikt Azure AD B2C de configuratiegegevens om het SAML-metagegevensdocument van de id-provider te genereren dat door de toepassing wordt gebruikt. Het SAML-metagegevensdocument bevat de locaties van services, zoals aanmeldingsmethoden, afmeldingsmethoden en certificaten.
De metagegevens van het Azure AD B2C-beleid zijn beschikbaar op de volgende URL:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata
Vervang
<tenant-name>
door de naam van uw Azure AD B2C-tenant. Vervang<policy-name>
door de naam (ID) van het beleid. Hier volgt een voorbeeld:https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata
Download de SAML-metagegevens en sla deze lokaal op uw apparaat op. Dit is nodig met de volgende stap om de configuratie in Akamai Enterprise Application Access te voltooien.
Stap 6: Akamai Enterprise Application Access-toepassing registreren in Azure AD B2C
Voor Azure AD B2C om Akamai Enterprise Application Access te vertrouwen, maakt u een Azure AD B2C-toepassingsregistratie. De registratie bevat configuratiegegevens, zoals het metagegevenseindpunt van de toepassing.
Meld u aan bij de Azure-portal.
Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
Selecteer Azure AD B2C in het linkermenu. Of selecteer Alle services en zoek en selecteer Azure AD B2C.
Selecteer App-registraties en selecteer vervolgens Nieuwe registratie.
Voer een naam in voor de toepassing. Voer bijvoorbeeld Akamai B2C Enterprise Application Access in.
Selecteer onder Ondersteunde accounttypen alleen Accounts in deze organisatiemap (alleen B2C - één tenant).
Selecteer onder Omleidings-URI de optie Web en voer vervolgens de Akamai-URL in die is gedefinieerd in akamai Enterprise Application Access Setting\General in stap 1. Bijvoorbeeld
https://fabrikam.login.go.akamai-access.com/saml/sp/response
.Selecteer Registreren.
Stap 7: uw Akamai Enterprise Application Access-toepassing configureren in Azure AD B2C
Voor SAML moet u verschillende eigenschappen configureren in het manifest van de toepassingsregistratie.
Ga in Azure Portal naar de toepassingsregistratie die u in stap 3 hebt gemaakt.
Selecteer onder Beheren manifest om de manifesteditor te openen. Wijzig vervolgens de eigenschappen die in de volgende sectie worden beschreven.
De id toevoegen
Wanneer de SAML-toepassing voor Akamai Enterprise Application Access een aanvraag indient bij Azure AD B2C, bevat de SAML-verificatieaanvraag een Issuer
kenmerk. De waarde van dit kenmerk is doorgaans hetzelfde als de metagegevenswaarde entityID
van de toepassing. Azure AD B2C gebruikt deze waarde om de toepassingsregistratie in de directory op te zoeken en de configuratie te lezen. Om deze zoekopdracht te voltooien, identifierUri
moet in het registratiemanifest van de toepassing een waarde worden ingevuld die overeenkomt met het Issuer
kenmerk.
Zoek in het registratiemanifest de identifierURIs
parameter en voeg de IssuerURI-waarde toe die is gedefinieerd in stap 2, Azure AD B2C ClaimsProvider.
Voorbeeld:
"identifierUris": [
"https://fabrikam.login.go.akamai-access.com/saml/sp/response"
],
Deze waarde is dezelfde waarde die is geconfigureerd in de SAML-verificatieaanvragen voor EntityId
de toepassing en de entityID
waarde in de metagegevens van de toepassing. U moet ook de accessTokenAcceptedVersion
parameter zoeken en de waarde instellen op 2
.
Belangrijk
Als u het accessTokenAcceptedVersion
bestand niet bijwerkt, 2
ontvangt u een foutbericht waarin een geverifieerd domein is vereist.
Stap 8: verificatie-instellingen configureren voor de Azure AD B2C IdP in Akamai Enterprise Application Access
Werk uw Akamai Enterprise Application Access Azure AD B2C IdP bij met verificatiegegevens zoals relying party-URL's.
Aanmelden bij Enterprise Center https://control.akamai.com/
Selecteer in het navigatiemenu van Enterprise Center de id-providers voor identiteitsgebruikers & >van toepassingstoegang.>
Selecteer de naam van de id-provider die u in stap 1 hebt gemaakt.
Upload het Azure AD B2C SAML-metagegevensbestand dat u in stap 5 hebt gedownload.
Als u het bestand metadata.xml wilt uploaden, selecteert u Bestand kiezen.
Selecteer Opslaan en implementeren.
Stap 9: Akamai Enterprise Application Access implementeren Verbinding maken ors in uw privé-datacenter
Als u toegang tot een privétoepassing wilt inschakelen, implementeert u een of meer Akamai Enterprise Application Access-connectors in het privé datacenter waarin uw toepassing zich bevindt. Zorg ervoor dat de connectors uw privétoepassing kunnen bereiken en uitgaande toegang hebben tot de Akamai Cloud.
Stap 10: Een Access-toepassing definiëren in Akamai Enterprise-toepassingstoegang voor de privétoepassing
Een toegangstoepassing definiëren en implementeren in Akamai Enterprise Application Access.
Wanneer u de Access-toepassing definieert
Koppel deze aan de Azure AD B2C IdP-definitie van Enterprise Application Access die u met de vorige stappen hebt gemaakt.
Configureer Application Facing Authentication om eenmalige aanmelding in te schakelen in de privétoepassing:
Optie 1: HTTP-headers
In dit voorbeeld gebruiken we een toepassing die headers docker header-demo-app weergeeft. Zodra de toepassing is geïmplementeerd in een privéomgeving en een connector toegang heeft tot de toepassing, maakt u een aangepaste HTTP-typetoepassing volgens de Akamai-documentatie Aangepaste HTTP-headers configureren voor een toegangstoepassing.
- Selecteer bij Verificatie de Azure AD B2C SAML IdP die in de vorige stappen is gemaakt.
- Wijs in de sectie Geavanceerd van de toepassing de HTTP-header toe aan de SAML-kenmerken die zijn uitgegeven door Azure AD B2C in het SAML-antwoord na een geslaagde verificatie.
Voorbeeld:
Koptekstnaam | Kenmerk |
---|---|
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 |
Test de toepassing door de Akamai-URL te selecteren voor de webtoepassing van het aangepaste HTTP-type die u hebt gemaakt.
Optie 2: OpenID-Verbinding maken
In dit voorbeeld gebruiken we een ASP.NET MVC-web-app waarmee gebruikers worden aangemeld met behulp van de OWIN-middleware (Open Web Interface for .NET) en het Microsoft Identity Platform.
Configureer de OIDC naar SAML-bridging in de Azure AD B2C SAML IdP die met de vorige stappen is gemaakt.
Maak een aangepaste HTTP-typetoepassing na OpenID configureren Verbinding maken voor een Access-toepassing.
Selecteer in Verificatie de Azure AD B2C SAML IdP die in de vorige stappen is gemaakt op basis van de HTTP-headertoepassing.
Selecteer in Geavanceerd OpenID Verbinding maken 1.0 als verificatiemechanisme en selecteer vervolgens Opslaan.
Er wordt een nieuw OpenID-tabblad weergegeven, kopieert u de detectie-URL die verderop in de stappen nodig is bij het configureren van het OWIN-onderdeel voor het testen van de toepassing.
Definieer in de sectie Claims de claims die Akamai gaat uitgeven voor de OIDC-toepassing, waarbij de waarden worden toegewezen aan de SAML-kenmerken die door Azure AD B2C worden geleverd in het SAML-antwoord na een geslaagde verificatie. Deze claims moeten toewijzen wat u in de vorige stap hebt gedefinieerd bij het configureren van de OIDC naar SAML-bridging in azure AD B2C SAML IdP.
Vervang opstartklasse door de volgende code in de ASP.NET MVC-web-app.
Deze paar wijzigingen configureren de toekenning van de autorisatiecodestroom, de autorisatiecode wordt ingewisseld voor tokens op het tokeneindpunt voor de toepassing en introduceert het metagegevensadres om het detectie-eindpunt in te stellen voor het verkrijgen van metagegevens van 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); } }
Voeg in het
web.config
bestand het metagegevensadres toe, vervang clientId, clientsecret, authority, redirectUri en PostLogoutRedirectUri door de waarden uit de Akamai-toepassing inappSettings
.U vindt deze waarden in de vorige stap 5 op het tabblad OpenID voor de HTTP Akamai-toepassing, waar u hebt gemaakt
Discovery URL=MetadataAddress
.redirectUri
is het lokale adres voor de Akamai-connector die moet worden omgezet in de lokale OIDC-toepassing.Authority
is de authorization_endpoint die u kunt vinden in uw.well-known/openid-configuration
document.Detectie-URL:
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>
Test de toepassing door de Akamai-URL te selecteren voor de aangepaste http-type webtoepassing die is gemaakt.
De oplossing testen
Navigeer naar de toepassings-URL met behulp van de externe URL die is opgegeven in akamai Enterprise Application Access.
Niet-geverifieerde gebruiker wordt omgeleid naar de aanmeldingspagina van Azure AD B2C.
Selecteer de IdP in de lijst op de pagina.
Meld u aan als eindgebruiker met referenties die zijn gekoppeld aan Azure AD B2C.
Na een geslaagde verificatie wordt de eindgebruiker teruggeleid naar de toepassing en aangemeld bij de toepassing als eindgebruiker.