Khắc phục sự cố triển khai chính sách xác nhận SAML

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

SourceNotConfigured

Thông báo Lỗi

Triển khai proxy API thông qua giao diện người dùng Edge hoặc tính năng quản lý Edge API không hoạt động được với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
ValidateSAMLAssertion[policy_name]: Source is not correctly configured.

Ví dụ về thông báo lỗi

Error Deploying Revision 2 to test
ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Không triển khai Proxy API được với lỗi này nếu một hoặc nhiều các thành phần sau đây của Chính sách xác nhận SAML không xác thực được xác định hoặc trống: <Source>, <XPath>, <Namespaces>, <Namespace>.

Ví dụ: nếu bạn bỏ lỡ phần tử <XPath> hoặc rời khỏi <Source> hoặc các thực thể của phần tử đó trống, thì việc triển khai proxy API không thành công.

Chẩn đoán

  1. Xác định tên chính sách Xác thực SAML không thành công trong . Ví dụ: trong lỗi sau, tuỳ chọn Xác thực Tên chính sách Xác nhận SAML là Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Kiểm tra tệp XML của chính sách xác nhận SAML không xác thực được. Kiểm tra xem có hoặc có nhiều thành phần sau đây của chính sách bị thiếu hoặc trống: <Source>, <XPath>, <Namespaces>, <Namespace>. Nếu có, điều đó có thể là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây có phần tử <Namespaces> trống trong phần tử <Source>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ValidateSAMLAssertion name="SAML" ignoreContentType="false">
      <Source name="request">
        <Namespaces></Namespaces>
       </Source>
       <Description/>
     <TrustStore>ref://TrustStoreName</Truststore>
     <RemoveAssertion>false</RemoveAssertion>
    </ValidateSAMLAssertion>
    
  3. Trong ví dụ trên, phần tử <Namespaces> bị trống. Do đó, bạn sẽ gặp lỗi:

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    

Độ phân giải

Đảm bảo rằng các giá trị của phần tử <Source> được định cấu hình chính xác có phần tử <Namespaces> và phần tử con <Namespace>. Bạn cũng cần đảm bảo phần tử <XPath> được xác định và không trống.

Để sửa ví dụ về Xác thực chính sách xác nhận SAML nêu trên, bạn có thể thêm các phần tử <Namespace> cũng như <XPath>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ValidateSAMLAssertion name="SAML" ignoreContentType="false">
  <Source name="request">
    <Namespaces>
      <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace>
      <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace>
      <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace>
    </Namespaces>
    <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
  </Source>
   <Description/>
<TrustStore>ref://TrustStoreName</Truststore>
<RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

TrustStoreNotConfigured

Thông báo Lỗi

Triển khai proxy API thông qua giao diện người dùng Edge hoặc tính năng quản lý Edge API không hoạt động được với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
ValidateSAMLAssertion[[Ljava.lang.Object;@object]: Trust store is not correctly configured.

Ví dụ về thông báo lỗi

Error Deploying Revision 2 to test
ValidateSAMLAssertion[[Ljava.lang.Object;@39537262]: Trust store is not correctly configured.

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Nếu phần tử <TrustStore> trống hoặc không được chỉ định trong Xác thực chính sách SAMLAssertion, sau đó triển khai API proxy. Bạn phải có một Cửa hàng tin cậy hợp lệ.

Chẩn đoán

  1. Kiểm tra tất cả chính sách Xác thực SAML trong phần Proxy API nơi xảy ra lỗi. Nếu có nút Xác thực Chính sách xác nhận SAML trong đó có phần tử <TrustStore> trống hoặc không được chỉ định, thì đó là nguyên nhân gây ra lỗi.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ValidateSAMLAssertion name="SAML" ignoreContentType="false">
     <Source name="request">
        <Namespaces>
          <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace>
          <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace>
          <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace>
        </Namespaces>
        <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
      </Source>
        <Description/>
        <TrustStore/>
      <RemoveAssertion>false</RemoveAssertion>
    </ValidateSAMLAssertion>
    

Độ phân giải

Đảm bảo rằng phần tử <TrustStore> luôn được chỉ định và không trống trong chính sách Xác thực SAML. <TrustStore> tên phải khớp với tên của một TrustStore hợp lệ tồn tại trong tất cả môi trường mà bạn đang cố gắng triển khai một proxy.

Để sửa ví dụ trên, bạn có thể chỉ định <TrustStore> có giá trị hợp lệ.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ValidateSAMLAssertion name="SAML" ignoreContentType="false">
  <Source name="request">
    <Namespaces>
      <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace>
      <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace>
      <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace>
    </Namespaces>
    <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
  </Source>
  <TrustStore>TrustStoreName</TrustStore>
  <RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

Hãy tham khảo Truststores và Keystores để biết thêm thông tin về cách sử dụng Truststore.

NullKeyStore

Thông báo Lỗi

Triển khai proxy API thông qua giao diện người dùng Edge hoặc Edge API quản lý không thành công với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
Assertion KeyStore name cannot be null.

Ví dụ về thông báo lỗi

Error Deploying Revision 4 to test
Assertion KeyStore name cannot be null.

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Nếu phần tử con <Name> bị trống hoặc không được chỉ định trong <Keystore> phần tử của chính sách GenerateSAMLAssertion, sau đó không triển khai được proxy API. Bạn phải nhập tên Kho khoá hợp lệ.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Xác nhận SAML trong phần Proxy API nơi xảy ra lỗi. Nếu có nút Tạo Chính sách xác nhận SAML trong đó có phần tử con <Name> là trống hoặc không được chỉ định trong phần tử <Keystore>, thì đó là nguyên nhân gây ra lỗi.

    Chính sách Tạo xác nhận SAML sau đây có phần tử con trống phần tử <Name> trong phần tử <Keystore>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer ref="reference">Issuer name</Issuer>
      <KeyStore>
        <Name></Name>
        <Alias ref="reference">alias</Alias>
      </KeyStore>
      <OutputVariable>
        <FlowVariable>assertion.content</FlowVariable>
        <Message name="request">
          <Namespaces>
            <Namespace prefix="test">http://www.example.com/test</Namespace>
          </Namespaces>
          <XPath>/envelope/header</XPath>
        </Message>
      </OutputVariable>
      <SignatureAlgorithm />
      <Subject ref="reference">Subject name</Subject>
      <Template ignoreUnresolvedVariables="false">
        <!-- A lot of XML goes here, in CDATA, with {} around
             each variable -->
      </Template>
    </GenerateSAMLAssertion>
    

Độ phân giải

Đảm bảo phần tử con <Name> luôn được chỉ định và không trống trong phần tử <Keystore> của phần Tạo Xác nhận SAML .

Để sửa ví dụ trên, bạn có thể chỉ định chính xác phần tử <Name> cũng như đảm bảo chỉ định một giá trị hợp lệ cho phần tử <Alias>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GenerateSAMLAssertion name="SAML" ignoreContentType="false">
  <CanonicalizationAlgorithm />
  <Issuer ref="reference">Issuer name</Issuer>
  <KeyStore>
    <Name ref="reference">keystorename</Name>
    <Alias ref="reference">alias</Alias>
  </KeyStore>
  <OutputVariable>
    <FlowVariable>assertion.content</FlowVariable>
    <Message name="request">
      <Namespaces>
        <Namespace prefix="test">http://www.example.com/test</Namespace>
      </Namespaces>
      <XPath>/envelope/header</XPath>
    </Message>
  </OutputVariable>
  <SignatureAlgorithm />
  <Subject ref="reference">Subject name</Subject>
  <Template ignoreUnresolvedVariables="false">
    <!-- A lot of XML goes here, in CDATA, with {} around
         each variable -->
  </Template>
</GenerateSAMLAssertion>

Hãy tham khảo ví dụ trong Bài viết tham khảo về chính sách SAMLAssertion.

NullKeyStoreAlias

Thông báo Lỗi

Triển khai proxy API thông qua giao diện người dùng Edge hoặc tính năng quản lý Edge API không hoạt động được với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
Assertion KeyStore alias cannot be null.

Ví dụ về thông báo lỗi

Error Deploying Revision 4 to test
Assertion KeyStore alias cannot be null.

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Nếu phần tử con <Alias> bị trống hoặc không được chỉ định trong Phần tử <Keystore> của chính sách Tạo xác nhận SAML, sau đó là phần tử không triển khai được proxy API. Bạn phải có email đại diện hợp lệ cho Kho khoá.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Xác nhận SAML trong phần Proxy API nơi xảy ra lỗi. Nếu có nút Tạo Chính sách xác nhận SAML trong đó có phần tử con <Alias> là trống hoặc không được chỉ định trong phần tử <Keystore>, thì đó là nguyên nhân gây ra lỗi.

    Chính sách Tạo xác nhận SAML sau đây có phần tử con trống phần tử <Alias> trong phần tử <Keystore>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer ref="reference">Issuer name</Issuer>
      <KeyStore>
        <Name ref="reference">keystorename</Name>
        <Alias></Alias>
      </KeyStore>
      <OutputVariable>
        <FlowVariable>assertion.content</FlowVariable>
        <Message name="request">
          <Namespaces>
            <Namespace prefix="test">http://www.example.com/test</Namespace>
          </Namespaces>
          <XPath>/envelope/header</XPath>
        </Message>
      </OutputVariable>
      <SignatureAlgorithm />
      <Subject ref="reference">Subject name</Subject>
      <Template ignoreUnresolvedVariables="false">
        <!-- A lot of XML goes here, in CDATA, with {} around
             each variable -->
      </Template>
    </GenerateSAMLAssertion>
    

Độ phân giải

Đảm bảo phần tử con <Name> luôn được chỉ định và không để trống trong phần tử <Keystore> của chính sách Tạo xác nhận SAML.

Để sửa ví dụ trên, bạn có thể chỉ định phần tử <Alias> một cách chính xác cũng như đảm bảo rằng bạn chỉ định giá trị hợp lệ cho Phần tử <Name>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GenerateSAMLAssertion name="SAML" ignoreContentType="false">
  <CanonicalizationAlgorithm />
  <Issuer ref="reference">Issuer name</Issuer>
  <KeyStore>
    <Name ref="reference">keystorename</Name>
    <Alias ref="reference">alias</Alias>
  </KeyStore>
  <OutputVariable>
    <FlowVariable>assertion.content</FlowVariable>
    <Message name="request">
      <Namespaces>
        <Namespace prefix="test">http://www.example.com/test</Namespace>
      </Namespaces>
      <XPath>/envelope/header</XPath>
    </Message>
  </OutputVariable>
  <SignatureAlgorithm />
  <Subject ref="reference">Subject name</Subject>
  <Template ignoreUnresolvedVariables="false">
    <!-- A lot of XML goes here, in CDATA, with {} around
         each variable -->
  </Template>
</GenerateSAMLAssertion>

Hãy tham khảo ví dụ trong Bài viết tham khảo về chính sách SAMLAssertion.

NullIssuer

Thông báo Lỗi

Triển khai proxy API thông qua giao diện người dùng Edge hoặc tính năng quản lý Edge API không hoạt động được với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
Assertion Issuer cannot be null.

Ví dụ về thông báo lỗi

Error Deploying Revision 4 to test
Assertion Issuer cannot be null.

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Nếu phần tử <Issuer> bị trống hoặc không được chỉ định trong mục Tạo SAML Xác nhận chính sách, thì việc triển khai proxy API sẽ không thành công. Giá trị hợp lệ Giá trị <Issuer> là bắt buộc.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Tạo xác nhận SAML trong API cụ thể Proxy nơi xảy ra lỗi. Có yêu cầu Tạo SAML nào không Chính sách xác nhận trong đó có phần tử <Issuer> trống hoặc không có đã chỉ định, thì đó là nguyên nhân gây ra lỗi.

    Chính sách Tạo xác nhận SAML sau đây có phần tử <Issuer> trống:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer></Issuer>
      <KeyStore>
        <Name ref="reference">keystorename</Name>
        <Alias ref="reference">alias</Alias>
      </KeyStore>
      <OutputVariable>
        <FlowVariable>assertion.content</FlowVariable>
        <Message name="request">
          <Namespaces>
            <Namespace prefix="test">http://www.example.com/test</Namespace>
          </Namespaces>
          <XPath>/envelope/header</XPath>
        </Message>
      </OutputVariable>
      <SignatureAlgorithm />
      <Subject ref="reference">Subject name</Subject>
      <Template ignoreUnresolvedVariables="false">
        <!-- A lot of XML goes here, in CDATA, with {} around
             each variable -->
      </Template>
    </GenerateSAMLAssertion>
    

Độ phân giải

Đảm bảo phần tử <Issuer> luôn được chỉ định và không được để trống trong chính sách Tạo Xác nhận SAML.

Để sửa ví dụ trên, hãy chỉ định đúng phần tử <Issuer>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GenerateSAMLAssertion name="SAML" ignoreContentType="false">
  <CanonicalizationAlgorithm />
  <Issuer ref="reference">Issuer name</Issuer>
  <KeyStore>
    <Name ref="reference">keystorename</Name>
    <Alias ref="reference">alias</Alias>
  </KeyStore>
  <OutputVariable>
    <FlowVariable>assertion.content</FlowVariable>
    <Message name="request">
      <Namespaces>
        <Namespace prefix="test">http://www.example.com/test</Namespace>
      </Namespaces>
      <XPath>/envelope/header</XPath>
    </Message>
  </OutputVariable>
  <SignatureAlgorithm />
  <Subject ref="reference">Subject name</Subject>
  <Template ignoreUnresolvedVariables="false">
    <!-- A lot of XML goes here, in CDATA, with {} around
         each variable -->
  </Template>
</GenerateSAMLAssertion>

Hãy tham khảo ví dụ trong Bài viết tham khảo về chính sách SAMLAssertion.