使用 Akamai Enterprise Application Access 設定 Azure Active Directory B2C 以進行 SSO 和保護混合式存取
在本範例教學課程中,瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 驗證與 Akamai 企業應用程式存取。 Akamai 企業應用程式存取是 零信任 網路存取 (ZTNA) 解決方案,可安全地遠端訪問位於私人數據中心的新式和舊版應用程式。 Akamai 企業應用程式存取會與識別提供者 (IdP) Azure AD B2C 同盟,以驗證使用者,然後使用其授權原則對身分識別、裝置、應用程式和要求內容進行持續評估,再允許存取私人應用程式。
此功能僅適用於自定義原則。 針對安裝步驟,請在上述選取器中選取 [自定義原則 ]。
必要條件
若要開始使用,您需要:
Akamai Enterprise Access 合約。 如果您沒有訂用帳戶,請取得 免費試用。
Azure 訂用帳戶。 如果您沒有訂用帳戶,可以取得免費帳戶。
部署在您數據中心或混合式雲端環境中防火牆後方的虛擬設備,以部署 Akamai 企業應用程式存取 連接器
使用標頭進行驗證的應用程式。 在此範例中,我們將使用顯示標頭 docker header-demo-app 的應用程式。
或 OpenID 連線 (OIDC) 應用程式。 在此範例中,我們將使用 ASP.NET MVC Web 應用程式,使用 Open Web Interface for .NET (OWIN) 中間件和 Microsoft 身分識別平台 來登入使用者。
案例描述
在此案例中,您會在用戶嘗試存取 Akamai 企業應用程式存取保護的私人應用程式時,為終端使用者啟用 Azure AD B2C 驗證。
此整合所涉及的元件如下:
Azure AD B2C:負責驗證終端使用者的 SAML 識別提供者。
Akamai 企業應用程式存取:負責使用持續 ZTNA 原則強制執行來保護私人應用程式的存取權的 ZTNA 雲端服務。
Akamai Enterprise Application Access 連線 or:部署在私人數據中心的虛擬設備。 它可讓您安全地連線到私人應用程式,而不需要開啟任何數據中心輸入防火牆埠。
應用程式:部署在您私人資料中心的服務或應用程式,使用者需要存取此數據中心。
使用者會向 Azure AD B2C(作為 SAML IdP)進行驗證,以 SAML 判斷提示回應 Akamai 企業應用程式存取(服務提供者)。 Akamai 企業應用程式存取會從 SAML 判斷提示對應資訊,並建構 OpenID 宣告或插入包含使用者相關信息的 HTTP 標頭。 Akamai 企業應用程式存取接著會將此項目傳遞至可透過 Akamai 企業應用程式存取連接器存取的應用程式。 在我們的範例中,應用程式會顯示這些標頭的內容。 在 OIDC 應用程式的使用案例中,它會顯示使用者的宣告。
下圖顯示 Akamai 企業應用程式存取 (EAA) 如何與 Azure AD B2C 整合。
用戶嘗試使用 Akamai 企業應用程式存取中註冊的應用程式外部 URL,存取裝載於私人資料中心的應用程式。
Akamai 企業應用程式存取會將未經驗證的使用者重新導向至 Azure AD B2C 以進行驗證。
成功驗證之後,Azure AD B2C 會使用 SAML 判斷提示將使用者重新導向回 Akamai 企業應用程式存取。
Akamai 企業應用程式存取會使用 SAML 判斷提示中的身分識別資訊來識別使用者,並判斷使用者是否允許存取要求的應用程式。
Akamai 企業應用程式存取會建構 OIDC 宣告,或插入傳送至應用程式的 HTTP 標頭。
應用程式會使用這項資訊來識別已驗證的使用者,併為使用者建立應用程式會話。
使用 Akamai 企業應用程式存取上線
若要開始使用 Akamai 企業應用程式存取,請參閱 Akamai 企業應用程式存取入門指南。
步驟 1 - 在 Akamai 企業應用程式存取中將 Azure AD B2C 新增為 SAML IdP
Akamai 企業應用程式存取支援 SAML 同盟與 Azure AD B2C 等雲端 IdP。 將 Azure AD B2C 新增為 Akamai 企業應用程式存取中的第三方 SAML IdP 。
登入 Enterprise Center https://control.akamai.com/
在 [企業中心] 導覽功能表中,選取 [ 應用程式存取 > 身分 & 識別用戶 > 識別提供者]。
選取 [新增識別提供者][+]。
輸入名稱、描述,然後選取提供者類型作為 第三方 SAML。
選取 [繼續]。 [識別提供者設定] 頁面隨即出現。
在 [設定> 一般輸入身分識別伺服器的 URL。 您可以選取 [使用 Akamai 網域] 或 [使用您的網域]。 如果您使用自己的網域,請使用自我簽署憑證,或使用上傳的自定義憑證。
在 [ 驗證 ] 中,輸入與上一個步驟在 [一般] 和 [選取 儲存] 中所定義的相同 URL。
步驟 2 - 在 Azure AD B2C 中註冊 SAML 應用程式
從 GitHub 取得自定義原則入門套件,然後使用您的 Azure AD B2C 租使用者名稱更新 LocalAccounts 入門套件中的 XML 檔案:
下載 .zip 檔案 或複製存放庫:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
在 LocalAccounts 目錄中的所有檔案中,以 Azure AD B2C 租使用者的名稱取代字串
yourtenant
。 例如,如果 B2C 租使用者的名稱是fabrikam
,則的所有實體都會yourtenant.onmicrosoft.com
變成fabrikam.onmicrosoft.com
。
建立 Azure AD B2C 的簽署憑證,以簽署傳送至 Akamai 企業應用程式存取的 SAML 回應:
a. 取得憑證。 如果您還沒有憑證,您可以使用自我簽署憑證。
b. 在 Azure AD B2C 租使用者中上傳憑證 。 記下名稱,因為後續步驟中所述需要
TechnicalProfile
的名稱。讓您的原則能夠與 SAML 應用程式連線。
a. 在自定義原則入門套件中開啟
LocalAccounts\TrustFrameworkExtensions.xml
。 尋找 ClaimsProviders 元素。 如果不存在,請將它新增至根元素底下,TrustFrameworkPolicy
並新增下列 XML 代碼段以實作您的 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.
issuerUri
將取代為 Akamai 企業應用程式存取設定>一般在步驟 1 中定義的 Akamai URL例子
<Item Key="IssuerUri">https://fabrikam.login.go.akamai-access.com/saml/sp/response</Item>
將B2C_1A_AkamaiSAMLSigningCert取代為上傳的原則金鑰名稱。
步驟 3 - 建立針對 SAML 設定的註冊或登入原則
在入門套件的工作目錄中建立檔案的
SignUpOrSignin.xml
複本,並以新的名稱加以儲存。 本文使用SignUpOrSigninSAML.xml
作為範例。 此檔案是信賴憑證者的原則檔案。 預設會設定為發出 JWT 回應。在
SignUpOrSigninSAML.xml
慣用的編輯器中開啟檔案。使用 Azure AD B2C 租使用者的名稱更新
tenant-name
,並將PolicyId
原則的 和PublicPolicyUri
值變更為B2C_1A_signup_signin_saml
和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">
在使用者旅程結束時,Azure AD B2C 包含一個步驟
SendClaims
。 此步驟參考令牌簽發者技術配置檔。 若要發出 SAML 回應,而不是預設 JWT 回應,請修改SendClaims
步驟以參考新的 SAML 令牌簽發者技術設定檔 。Saml2AssertionIssuer
在元素前面
<RelyingParty>
新增下列 XML 代碼段。 此 XML 會覆寫使用者旅程圖中的SignUpOrSignIn
協調流程步驟 4,假設您使用的是LocalAccount
自定義原則入門套件。如果您從入門套件中的不同資料夾開始,或新增或移除協調流程步驟來自定義使用者旅程圖,請確定 元素中的
order
數字對應至令牌簽發者步驟的使用者旅程圖中指定的數位。 例如,在其他入門套件資料夾中,對應的步驟編號為 7,6SocialAndLocalAccounts
則為SocialAccounts
,而 9 則為SocialAndLocalAccountsWithMfa
。<UserJourneys> <UserJourney Id="SignUpOrSignIn"> <OrchestrationSteps> <OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/> </OrchestrationSteps> </UserJourney> </UserJourneys>
信賴憑證者元素會決定您的應用程式所使用的通訊協定。 預設值為
OpenId
。 元素Protocol
必須變更為SAML
。 輸出宣告會建立 SAML 判斷提示的宣告對應。以下列技術配置檔 XML 取代 元素中的
<RelyingParty>
整個<TechnicalProfile>
專案。<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>
信賴憑證者的最終原則檔案看起來應該像下列 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>
注意
您可以遵循這個相同的程式來實作其他類型的流程,例如登入、密碼重設或配置檔編輯流程。
步驟 4 - 上傳您的原則
儲存您的變更,TrustFrameworkBase.xml
並將 新的TrustFrameworkExtensions.xml
和SignUpOrSigninSAML.xml
原則檔案上傳至 Azure 入口網站。
登入 Azure 入口網站。
如果您有多個租使用者的存取權,請選取頂端功能表中的 設定 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
在 Azure 入口網站 中,搜尋並選取 [Azure AD B2C]。
在 [原則] 底下,選取 [ 身分識別體驗架構]。 選取 [ 上傳自定義原則],然後依下列順序上傳您變更的兩個原則檔案:
- 基底檔案,例如
TrustFrameworkBase.xml
- 擴充原則,例如
TrustFrameworkExtensions.xml
- 然後是信賴憑證者原則,例如
SignUpOrSigninSAML.xml
。
- 基底檔案,例如
步驟 5 - 下載 Azure AD B2C IdP SAML 元數據
上傳原則檔案之後,Azure AD B2C 會使用組態資訊來產生應用程式將使用的識別提供者 SAML 元數據檔。 SAML 元數據檔包含服務的位置,例如登入方法、註銷方法和憑證。
Azure AD B2C 原則元數據位於下列 URL:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata
將 取代
<tenant-name>
為您的 Azure AD B2C 租使用者名稱。 將 取代<policy-name>
為原則的名稱(ID)。 以下是範例:https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata
下載 SAML 中繼資料,並將其儲存在您的裝置本機上。 需要執行下列步驟才能完成 Akamai 企業應用程式存取中的設定。
步驟 6 - 在 Azure AD B2C 中註冊 Akamai 企業應用程式存取應用程式
若要讓 Azure AD B2C 信任 Akamai 企業應用程式存取,請建立 Azure AD B2C 應用程式註冊。 註冊包含組態資訊,例如應用程式的中繼資料端點。
登入 Azure 入口網站。
如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
在左側功能表上,選取 [Azure AD B2C ]。 或者,選取 [ 所有服務 ],然後搜尋並選取 [Azure AD B2C ]。
選取 [應用程式註冊],然後選取 [新增註冊]。
輸入 應用程式的 [名稱 ]。 例如,輸入 Akamai B2C 企業應用程式存取 。
在 [支援的帳戶類型 ] 下 ,選取 [僅限此組織目錄中的帳戶] (僅限 B2C - 單一租使用者)。
在 [重新導向 URI] 下,選取 [Web ],然後在步驟 1 中 輸入 Akamai 企業應用程式存取 設定\一般 中定義的 Akamai URL。 例如:
https://fabrikam.login.go.akamai-access.com/saml/sp/response
。選取註冊。
步驟 7 - 在 Azure AD B2C 中設定 Akamai 企業應用程式存取應用程式
針對 SAML,您必須在應用程式註冊的資訊清單中設定數個屬性。
在 Azure 入口網站 中,移至您在步驟 3 中 建立的應用程式註冊。
在 [管理] 底下 ,選取 [ 資訊清單 ] 以開啟資訊清單 編輯器。 然後修改下一節所述的屬性。
新增識別碼
當 Akamai 企業應用程式存取 SAML 應用程式向 Azure AD B2C 提出要求時,SAML 驗證要求會包含 Issuer
屬性。 此屬性的值通常與應用程式的中繼資料 entityID
值相同。 Azure AD B2C 會使用此值來查閱目錄中的應用程式註冊,並讀取設定。 若要讓此查閱成功, identifierUri
您必須在應用程式註冊資訊清單中填入符合 Issuer
屬性的值。
在註冊資訊清單中,尋找 identifierURIs
參數,並新增 步驟 2,Azure AD B2C ClaimsProvider 中所 定義的 IssuerURI 值。
範例:
"identifierUris": [
"https://fabrikam.login.go.akamai-access.com/saml/sp/response"
],
此值會與在應用程式的 SAML AuthN 要求中設定 EntityId
的值相同,以及 entityID
應用程式中繼資料中的值。 您也需要尋找 參數, accessTokenAcceptedVersion
並將值設定為 2
。
重要
如果您未將 更新 accessTokenAcceptedVersion
為 2
,您將會收到需要已驗證網域的錯誤訊息。
步驟 8 - 在 Akamai 企業應用程式存取中設定 Azure AD B2C IdP 的驗證設定
使用信賴憑證者 URL 等驗證資訊更新 Akamai 企業應用程式存取 Azure AD B2C IdP。
登入 Enterprise Center https://control.akamai.com/
在 [企業中心] 導覽功能表中,選取 [ 應用程式存取 > 身分 & 識別使用者 > 識別提供者 ]。
選取在步驟 1 中 建立的識別提供者名稱。
上傳您在步驟 5 中下載的 Azure AD B2C SAML 中繼資料檔案。
若要上傳 metadata.xml 檔案,請選取 [ 選擇檔案 ]。
選取 [ 儲存並部署 ]。
步驟 9 - 在私人資料中心部署 Akamai Enterprise Application Access 連線ors
若要啟用私人應用程式的存取權,請在應用程式所在的私人資料中心部署一或多個 Akamai 企業應用程式存取連接器 。 請確定連接器可以連線到您的私人應用程式,並具有 Akamai 雲端的輸出存取權。
步驟 10 - 在私人應用程式的 Akamai 企業應用程式存取中定義存取應用程式
當您定義存取應用程式時
將它關聯至 您使用先前步驟建立的企業應用程式存取 Azure AD B2C IdP 定義。
設定應用程式面向驗證,以啟用私人應用程式的 SSO:
- 選項 1 : 設定存取應用程式的自訂 HTTP 標頭
- 選項 2 : 設定 Access 應用程式的 OpenID 連線
選項 1:HTTP 標頭
在此範例中,我們將使用顯示標頭 docker header-demo-app 的應用程式 。 在私人環境中部署應用程式且連接器能夠存取應用程式之後,請遵循 Akamai 檔 設定存取應用程式的自訂 HTTP 標頭,建立自訂 HTTP 類型應用程式 。
- 在 [驗證] 中,選取在先前步驟中建立的 Azure AD B2C SAML IdP。
- 在應用程式的 [ 進階 ] 區段中,在成功驗證時,將 HTTP 標頭對應至 SAML 回應中 Azure AD B2C 所發出的 SAML 屬性。
範例:
標頭名稱 | 屬性 |
---|---|
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 |
為您所建立的自訂 HTTP 類型 Web 應用程式選取 Akamai URL,以測試應用程式。
選項 2:OpenID 連線
在此範例中,我們將使用 使用 Open Web Interface for .NET (OWIN) 中介軟體和Microsoft 身分識別平臺來登入使用者的 ASP.NET MVC Web 應用程式 。
在使用先前步驟建立的 Azure AD B2C SAML IdP 中 ,將 OIDC 設定為 SAML 橋接。
在設定 Access 應用程式的 OpenID 連線 之後 ,建立自訂 HTTP 類型應用程式。
在 [驗證] 中,選取根據 HTTP 標頭應用程式在先前步驟中建立的 Azure AD B2C SAML IdP。
在 [進階 ] 中 ,選取 [OpenID 連線 1.0 ] 作為驗證機制,然後選取 [ 儲存 ]。
新的 OpenID 索引標籤隨即出現,複製稍後在設定 OWIN 元件以測試應用程式時步驟中所需的探索 URL。
在 [ 宣告] 區段中,定義 Akamai 針對 OIDC 應用程式發出的宣告,在成功驗證時,將其值對應至 SAML 回應中 Azure AD B2C 所提供的 SAML 屬性。 在 Azure AD B2C SAML IdP 中將 OIDC 設定為 SAML 橋接時 ,這些宣告必須對應您在上一個步驟中定義的專案。
將啟動類別取代為 ASP.NET MVC Web 應用程式中 的下列程式碼。
這些少數變更會設定授權碼流程授與,授權碼將會在應用程式的權杖端點兌換權杖,並引進中繼資料位址來設定探索端點,以從 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); } }
在檔案中
web.config
新增中繼資料位址,將 clientId、clientsecret、authority、redirectUri 和 PostLogoutRedirectUri 取代為 中的appSettings
Akamai 應用程式值。您可以在您在建立 的 HTTP Akamai 應用程式的
Discovery URL=MetadataAddress
OpenID 索引標籤中,于上一個步驟 5 中找到這些值。redirectUri
是 Akamai 連接器要解析為本機 OIDC 應用程式的本機位址。Authority
是您可以從檔 中找到.well-known/openid-configuration
的authorization_endpoint。探索 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>
為所建立的自訂 HTTP 類型 Web 應用程式選取 Akamai URL,以測試應用程式。
測試解決方案
使用 Akamai 企業應用程式存取中指定的外部 URL,流覽至應用程式 URL。
未經驗證的使用者會重新導向至 Azure AD B2C 登入頁面。
從頁面上的清單選取 IdP。
以使用者身分登入,並使用連結至 Azure AD B2C 的認證。
成功驗證之後,使用者將會重新導向回應用程式,並以使用者身分登入應用程式。