在 Azure AD B2C 中註冊 SAML 應用程式

在本文中,瞭解如何將安全性判斷提示標記語言 (SAML) 應用程式 (服務提供者) 連線到 Azure Active Directory B2C (Azure AD B2C) 以進行驗證。

開始 之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自訂原則 。 本文中每個方法所需的步驟都不同。

此功能僅適用于自訂原則。 針對安裝步驟,請在上述選取器中選取 [自訂原則 ]。

概觀

使用 Azure AD B2C 作為其客戶身分識別和存取管理解決方案的組織,可能需要與使用 SAML 通訊協定進行驗證的應用程式整合。 下圖顯示 Azure AD B2C 如何作為識別提供者 (IdP) 以使用 SAML 型應用程式達成單一 登錄 (SSO)。

Diagram with Azure Active Directory B2C as an identity provider on the left and as a service provider on the right.

  1. 應用程式會建立 SAML AuthN 要求,該要求會傳送至 Azure AD B2C 的 SAML 登入端點。
  2. 使用者可以使用 Azure AD B2C 本機帳戶或任何其他同盟識別提供者(如果已設定)進行驗證。
  3. 如果使用者使用同盟識別提供者登入,則會將權杖回應傳送至 Azure AD B2C。
  4. Azure AD B2C 會產生 SAML 判斷提示,並將其傳送至應用程式。

觀看這段影片,瞭解如何整合 SAML 應用程式與 Azure AD B2C。

必要條件

針對本文中的案例,您需要:

  • 來自自訂原則入門套件的 SocialAndLocalAccounts 自訂原則。 完成開始使用 Azure AD B2C 中的自訂原則中的 步驟。
  • 對 SAML 通訊協定和熟悉應用程式的 SAML 實作有基本瞭解。
  • 設定為 SAML 應用程式的 Web 應用程式。 它必須能夠傳送 SAML AuthN 要求,以及接收、解碼及驗證來自 Azure AD B2C 的 SAML 回應。 SAML 應用程式也稱為信賴憑證者應用程式或服務提供者。
  • SAML 應用程式的公開可用 SAML 中繼資料端點 或 XML 檔。
  • Azure AD B2C 租使用者

如果您還沒有 SAML 應用程式和相關聯的中繼資料端點,您可以使用 我們提供給測試的 SAML 測試應用程式

重要

您的端點必須符合 Azure AD B2C 安全性需求。 舊版 TLS 和密碼已被取代。 如需詳細資訊,請參閱 Azure AD B2C TLS 和加密套件需求

設定憑證

若要在您的應用程式與 Azure AD B2C 之間建立信任關係,這兩個服務都必須能夠建立並驗證彼此的簽章。 在應用程式和 Azure AD B2C 中設定 X509 憑證。

應用程式憑證

使用方式 必要 描述
SAML 要求籤署 No 具有儲存在 Web 應用程式中私密金鑰的憑證。 您的應用程式會使用憑證來簽署傳送至 Azure AD B2C 的 SAML 要求。 Web 應用程式必須透過其 SAML 中繼資料端點公開公開金鑰。 Azure AD B2C 會使用來自應用程式中繼資料的公開金鑰來驗證 SAML 要求籤章。
SAML 判斷提示加密 No 具有儲存在 Web 應用程式中私密金鑰的憑證。 Web 應用程式必須透過其 SAML 中繼資料端點公開公開金鑰。 Azure AD B2C 可以使用公開金鑰來加密應用程式的判斷提示。 應用程式會使用私密金鑰來解密判斷提示。

Azure AD B2C 憑證

使用方式 必要 描述
SAML 回應簽署 Yes 具有儲存在 Azure AD B2C 中私密金鑰的憑證。 Azure AD B2C 會使用此憑證來簽署傳送至應用程式的 SAML 回應。 您的應用程式會讀取 Azure AD B2C 中的中繼資料公開金鑰,以驗證 SAML 回應的簽章。
SAML 判斷提示簽署 Yes 具有儲存在 Azure AD B2C 中私密金鑰的憑證。 Azure AD B2C 會使用此憑證來簽署 <saml:Assertion> SAML 回應的一部分。

在生產環境中,我們建議使用已發行公開憑證授權單位單位的憑證。 但您也可以使用自我簽署憑證來完成此程式。

建立原則金鑰

若要在您的應用程式與 Azure AD B2C 之間建立信任關係,請建立 SAML 回應的簽署憑證。 Azure AD B2C 會使用此憑證來簽署傳送至應用程式的 SAML 回應。 您的應用程式會讀取 Azure AD B2C 的中繼資料公開金鑰,以驗證 SAML 回應的簽章。

提示

您可以將此原則金鑰用於其他用途,例如簽署 SAML 判斷提示

取得憑證

如果您還沒有憑證,您可以使用自我簽署憑證。 自我簽署憑證是一種安全性憑證,不是由憑證授權單位單位 (CA) 簽署,也不會提供 CA 所簽署憑證的安全性保證。

在 Windows 上 ,使用 PowerShell 中的 New-SelfSignedCertificate Cmdlet 來產生憑證。

  1. 執行下列 PowerShell 命令來產生自我簽署憑證。 -Subject視您的應用程式和 Azure AD B2C 租使用者名稱,修改引數,例如 contosowebapp.contoso.onmicrosoft.com 。 您也可以調整日期, -NotAfter 為憑證指定不同的到期日。

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. 在 Windows 電腦上,搜尋並選取 [管理使用者憑證]

  3. 在 [ 憑證 - 目前使用者 ] 底下,選取 [個人 > 憑證 > ] yourappname.yourtenant.onmicrosoft.com。

  4. 選取憑證,然後選取 [ 動作 > 所有工作 > 匯出]。

  5. 選取 [下一步 > 是],匯出私密金鑰 > [下一步]。

  6. 接受匯出檔案格式的 預設值,然後選取 [ 下一步 ]。

  7. 啟用 [密碼] 選項,輸入憑證的密碼,然後選取 [ 下一步 ]。

  8. 若要指定儲存憑證的位置,請選取 [流覽 ] 並流覽至您選擇的目錄。

  9. 在 [ 另存新檔 ] 視窗中,輸入 檔案名 ,然後選取 [ 儲存 ]。

  10. 選取 [ 下一步 > 完成]。

若要讓 Azure AD B2C 接受 .pfx 檔案密碼,密碼必須使用 Windows 憑證存放區匯出公用程式中的 TripleDES-SHA1 選項加密,而不是 AES256-SHA256。

上傳憑證

您必須將憑證儲存在 Azure AD B2C 租使用者中。

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 選取 Azure 入口網站左上角的 [所有服務 ],然後搜尋並選取 [Azure AD B2C ]。
  4. 在 [概 觀] 頁面上,選取 [ 身分識別體驗架構 ]。
  5. 選取 [ 原則金鑰 ],然後選取 [ 新增 ]。
  6. 針對 [ 選項 ],選取 [ 上傳 ]。
  7. 針對 [ 名稱 ],輸入原則金鑰的名稱。 例如,輸入 SamlIdpCert 前置詞B2C_1A_ 會自動新增至金鑰的名稱。
  8. 流覽並選取具有私密金鑰的憑證 .pfx 檔案。
  9. 選取建立

讓您的原則能夠與 SAML 應用程式連線

若要連線到您的 SAML 應用程式,Azure AD B2C 必須能夠建立 SAML 回應。

在自訂原則入門套件中開啟 SocialAndLocalAccounts\TrustFrameworkExtensions.xml

尋找 區 <ClaimsProviders> 段並新增下列 XML 程式碼片段以實作您的 SAML 回應產生器:

<ClaimsProvider>
  <DisplayName>Token Issuer</DisplayName>
  <TechnicalProfiles>

    <!-- SAML Token Issuer technical profile -->
    <TechnicalProfile Id="Saml2AssertionIssuer">
      <DisplayName>Token Issuer</DisplayName>
      <Protocol Name="SAML2"/>
      <OutputTokenFormat>SAML2</OutputTokenFormat>
      <Metadata>
        <Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
        <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
      </CryptographicKeys>
      <InputClaims/>
      <OutputClaims/>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer"/>
    </TechnicalProfile>

    <!-- Session management technical profile for SAML-based tokens -->
    <TechnicalProfile Id="SM-Saml-issuer">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
    </TechnicalProfile>

  </TechnicalProfiles>
</ClaimsProvider>

設定 SAML 回應的簽發者 URI

您可以在 SAML 令牌簽發者技術設定檔中變更元數據專案的值 IssuerUri 。 這項變更會反映在 issuerUri 從 Azure AD B2C 的 SAML 回應中傳回的屬性中。 設定您的應用程式在 SAML 回應驗證期間接受相同的 IssuerUri 值。

<ClaimsProvider>
  <DisplayName>Token Issuer</DisplayName>
  <TechnicalProfiles>
    <!-- SAML Token Issuer technical profile -->
    <TechnicalProfile Id="Saml2AssertionIssuer">
      <DisplayName>Token Issuer</DisplayName>
      <Protocol Name="SAML2"/>
      <OutputTokenFormat>SAML2</OutputTokenFormat>
      <Metadata>
        <Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
      </Metadata>
      ...
    </TechnicalProfile>

設定您的原則以發出 SAML 回應

既然您的原則可以建立 SAML 回應,您必須設定原則來發出 SAML 回應,而不是對應用程式的預設 JWT 回應。

建立針對 SAML 設定的註冊或登入原則

  1. 在入門套件的工作目錄中建立 SignUpOrSignin.xml 檔案的複本,並以新的名稱加以儲存。 本文使用 SignUpOrSigninSAML.xml 作為範例。 此檔案是信賴憑證者的原則檔案。 預設會設定為發出 JWT 回應。

  2. 慣用的編輯器中開啟 SignUpOrSigninSAML.xml 檔案。

  3. 變更的值:

    1. PolicyId 移至 B2C_1A_signup_signin_saml

    2. PublicPolicyUrihttp://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml。 以 Azure AD B2C 租使用者功能變數名稱的子域取代 <tenant-name> 佔位元。 例如,如果您的租使用者主要網域是 contoso.onmicrosoft.com,請使用 contoso。 如果您沒有租用戶名稱,請瞭解如何 閱讀您的租使用者詳細數據

    <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. 在使用者旅程結束時,Azure AD B2C 包含一個步驟 SendClaims 。 此步驟參考令牌簽發者技術配置檔。 若要發出 SAML 回應,而不是預設 JWT 回應,請修改SendClaims步驟以參考新的 SAML 令牌簽發者技術設定檔 。 Saml2AssertionIssuer

在元素前面 <RelyingParty> 新增下列 XML 代碼段。 此 XML 會覆寫 SignUpOrSignIn 使用者旅程圖中的協調流程步驟 7。

如果您從入門套件中的不同資料夾開始,或新增或移除協調流程步驟來自定義使用者旅程圖,請確定 元素中的 order 數字對應至令牌簽發者步驟的使用者旅程圖中指定的數位。 例如,在其他入門套件資料夾中,對應的步驟編號為 4, LocalAccounts針對 為 6, SocialAccounts而 9 則為 SocialAndLocalAccountsWithMfa

<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>
      <OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
    </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="contoso.onmicrosoft.com"
  PolicyId="B2C_1A_signup_signin_saml"
  PublicPolicyUri="http://contoso.onmicrosoft.com/B2C_1A_signup_signin_saml">

  <BasePolicy>
    <TenantId>contoso.onmicrosoft.com</TenantId>
    <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
  </BasePolicy>

  <UserJourneys>
    <UserJourney Id="SignUpOrSignIn">
      <OrchestrationSteps>
        <OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
      </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>

注意

您可以遵循這個相同的程式來實作其他類型的使用者流程(例如:登入、密碼重設或設定檔編輯流程)。

上傳您的原則

儲存您的變更,並將新的 TrustFrameworkExtensions.xmlSignUpOrSigninSAML.xml 原則檔案上傳至 Azure 入口網站。

測試 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://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata

在 Azure AD B2C 中註冊 SAML 應用程式

若要讓 Azure AD B2C 信任您的應用程式,您可以建立 Azure AD B2C 應用程式註冊。 註冊包含組態資訊,例如應用程式的元數據端點。

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取頂端功能表中的 設定 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 在左側功能表上,選取 [Azure AD B2C]。 或者,選取 [ 所有服務 ],然後搜尋並選取 [Azure AD B2C]。
  4. 選取 [應用程式註冊],然後選取 [新增註冊]
  5. 輸入 應用程式的 [名稱 ]。 例如,輸入 SAMLApp1
  6. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]
  7. 在 [重新導向 URI] 底下,選取 [Web],然後輸入 https://localhost 您稍後會在應用程式註冊的指令清單中修改此值。
  8. 選取註冊

在 Azure AD B2C 中設定您的應用程式

針對 SAML 應用程式,您必須在應用程式註冊的指令清單中設定數個屬性。

  1. Azure 入口網站 中,移至您在上一節中建立的應用程式註冊。
  2. 在 [管理] 底下,選取 [指令清單] 以開啟指令清單編輯器。 然後修改下列各節所述的屬性。

新增標識碼

當您的 SAML 應用程式向 Azure AD B2C 提出要求時,SAML AuthN 要求會包含 Issuer 屬性。 此屬性的值通常與應用程式的元數據 entityID 值相同。 Azure AD B2C 會使用此值來查閱目錄中的應用程式註冊,並讀取設定。 若要讓此查閱成功, identifierUri 您必須在應用程式註冊中填入符合 Issuer 屬性的值。

在註冊指令清單中 identifierURIs ,尋找 參數並新增適當的值。 此值會與在應用程式的 SAML AuthN 要求中設定 EntityId 的值相同,以及 entityID 應用程式元數據中的值。 您也需要尋找 參數, accessTokenAcceptedVersion 並將值設定為 2

重要

如果您未將 更新 accessTokenAcceptedVersion2 ,您將會收到需要已驗證網域的錯誤訊息。

下列範例顯示 entityID SAML 元資料中的值:

<EntityDescriptor ID="id123456789" entityID="https://samltestapp2.azurewebsites.net" validUntil="2099-12-31T23:59:59Z" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">

屬性 identifierUris 只會在網域 tenant-name.onmicrosoft.com上接受URL。

"identifierUris":"https://tenant-name.onmicrosoft.com/app-name",

使用 Azure AD B2C 共用應用程式的元數據

透過其 identifierUri 值載入應用程式註冊之後,Azure AD B2C 會使用應用程式的元數據來驗證 SAML AuthN 要求,並判斷如何回應。

我們建議您的應用程式公開可公開可公開的元數據端點。

如果 SAML 元資料 URL 和應用程式註冊的指令清單中同時指定了屬性,則會合併它們。 元數據 URL 中指定的屬性會先處理並優先處理。

使用 SAML 測試應用程式作為範例,您會在應用程式指令清單中使用下列值 samlMetadataUrl

"samlMetadataUrl":"https://samltestapp2.azurewebsites.net/Metadata",

覆寫或設定判斷提示取用者 URL (選擇性)

您可以設定 Azure AD B2C 傳送 SAML 回應的回覆 URL。 您可以在應用程式指令清單中設定回復 URL。 當您的應用程式未公開可公開可公開的元數據端點時,此組態很有用。

SAML 應用程式的回復 URL 是應用程式預期接收 SAML 回應的端點。 應用程式通常會在元數據檔中提供此 URL 做為 Location 元素的 AssertionConsumerService 屬性,如下列範例所示:

<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    ...
    <AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://samltestapp2.azurewebsites.net/SP/AssertionConsumer" />        
</SPSSODescriptor>

如果遺漏應用程式的元數據 AssertionConsumerService 元素,或您想要覆寫它,請設定應用程式註冊指令清單 replyUrlsWithType 屬性。 Azure AD B2C 會在使用者使用系HTTP-POST結類型登入之後,使用 replyUrlsWithType 重新導向使用者。

以 SAML 測試應用程式為例,您會將 的 replyUrlsWithType 屬性設定url為下列 JSON 代碼段中所示的值:

"replyUrlsWithType":[
  {
    "url":"https://samltestapp2.azurewebsites.net/SP/AssertionConsumer",
    "type":"Web"
  }
],

覆寫或設定註銷 URL (選擇性)

註銷 URL 會定義在註銷要求之後重新導向使用者的位置。 應用程式通常會在元數據檔中提供此 URL 做為 Location 項目的 屬性 SingleLogoutService ,如下列範例所示:

<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://samltestapp2.azurewebsites.net/logout" ResponseLocation="https://samltestapp2.azurewebsites.net/logout" />

</SPSSODescriptor>

如果遺漏應用程式的元數據 SingleLogoutService 元素,請設定應用程式註冊指令清單 logoutUrl 屬性。 Azure AD B2C 會在使用者使用系HTTP-Redirect結類型註銷之後,使用 logoutURL 重新導向使用者。

以 SAML 測試應用程式為例,您會將 logoutUrl 屬性設定為 https://samltestapp2.azurewebsites.net/logout

"logoutUrl": "https://samltestapp2.azurewebsites.net/logout",

注意

如果您選擇在應用程式指令清單中設定回復 URL 和註銷 URL,而不透過 samlMetadataUrl 屬性填入應用程式的元數據端點,Azure AD B2C 將不會驗證 SAML 要求簽章。 它也不會加密 SAML 回應。

在 SAML 應用程式中將 Azure AD B2C 設定為 SAML IdP

最後一個步驟是在 SAML 應用程式中將 Azure AD B2C 啟用為 SAML IdP。 每個應用程式都不同,步驟會有所不同。 如需詳細資訊,請參閱您的應用程式檔。

您可以在應用程式中將元資料設定為 靜態元資料動態元數據。 在靜態模式中,從 Azure AD B2C 原則元數據複製所有或部分元數據。 在動態模式中,提供元數據的URL,並允許您的應用程式動態讀取元數據。

通常需要下列部分或全部專案:

  • 元數據:使用 格式 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/Samlp/metadata

  • 簽發者:SAML 要求 issuer 的值必須符合應用程式註冊指令清單元素中 identifierUris 設定的其中一個 URI。 如果元素中identifierUris沒有 SAML 要求issuer的名稱,請將它新增至應用程式註冊指令清單。 例如: https://contoso.onmicrosoft.com/app-name

  • 登入 URL、SAML 端點、SAML URL:檢查 XML 元素的 Azure AD B2C SAML 原則元數據檔案 <SingleSignOnService> 中的值。

  • 憑證:此憑證B2C_1A_SamlIdpCert,但不含私鑰。 若要取得憑證的公鑰:

    1. 移至稍早指定的元數據 URL。
    2. 複製專案中的值 <X509Certificate>
    3. 將它貼到文字檔中。
    4. 將文字檔儲存為 .cer 檔案。

使用 SAML 測試應用程式進行測試

您可以使用我們的 SAML 測試應用程式 來測試您的設定:

  • 更新租用戶名稱。
  • 更新原則名稱。 例如,使用 B2C_1A_signup_signin_saml
  • 指定簽發者 URI。 使用應用程式註冊指令清單中元素中找到 identifierUris 的其中一個 URI。 例如,使用 https://contoso.onmicrosoft.com/app-name

選取 [登入],使用者登入畫面應該會出現。 登入之後,SAML 回應會傳回範例應用程式。

支援和不支援的 SAML 形式

下列 SAML 應用程式案例可透過您自己的元資料端點支援:

  • 為應用程式或服務主體物件中的註銷 URL 指定多個註銷 URL 或 POST 系結。
  • 指定簽署金鑰,以驗證應用程式或服務主體物件中的信賴憑證者要求。
  • 在應用程式或服務主體物件中指定令牌加密金鑰。
  • 指定IdP起始的登入,其中識別提供者是 Azure AD B2C

下一步