Khắc phục sự cố lỗi triển khai chính sách BasicXác thực

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

UserNameRequired

Thông báo lỗi

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Username element must be present for operation operation.

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

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Username element must be present for Encode operation.

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai được Proxy API nếu phần tử <User> không được xác định trong chính sách Xác thực cơ bản. Phần tử <User> là phần tử bắt buộc đối với cả thao tác Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Basicxác thực được sử dụng trong proxy API. Nếu có bất kỳ chính sách nào trong đó phần tử <User> không được chỉ định, thì đó chính là nguyên nhân gây ra lỗi. Phần tử <User> là bắt buộc trong chính sách BasicXác thực cho các hoạt động Mã hoá hoặc Giải mã.

    Chính sách BasicXác thực mẫu được hiển thị bên dưới được dùng cho thao tác Mã hoá, nhưng không có phần tử <User> được xác định:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Không triển khai được và gặp phải lỗi dưới đây:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <User> được xác định trong chính sách BasicConfirm cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ nêu trên, hãy thêm phần tử <User> vào chính sách như minh hoạ bên dưới:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

PasswordRequired

Thông báo lỗi

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Password element must be present for operation operation.

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

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Password element must be present for Encode operation.

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai được Proxy API nếu phần tử <Password> không được xác định trong chính sách Xác thực cơ bản. Phần tử <Password> là phần tử bắt buộc đối với cả thao tác Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Basicxác thực được sử dụng trong proxy API. Nếu có bất kỳ chính sách nào mà phần tử <Password> không được xác định, thì đó là nguyên nhân gây ra lỗi. Phần tử <Password> là bắt buộc trong chính sách Basicxác thực cho thao tác Mã hoá hoặc Giải mã.

    Chính sách BasicXác thực mẫu được hiển thị bên dưới được dùng cho thao tác Mã hoá, nhưng không có phần tử <Password> được xác định:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Không triển khai được và gặp phải lỗi dưới đây:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <Password> được xác định trong chính sách BasicConfirm cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ nêu trên, hãy thêm phần tử <Password> vào chính sách như minh hoạ bên dưới:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

AssignToRequired

Thông báo lỗi

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: AssignTo element must be present for operation operation.

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

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai được Proxy API nếu phần tử <AssignTo> không được xác định trong chính sách Xác thực cơ bản. Phần tử <AssignTo> là phần tử bắt buộc đối với cả thao tác Mã hoá và Giải mã.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Basicxác thực được sử dụng trong proxy API. Nếu có bất kỳ chính sách nào mà phần tử <AssignTo> không được xác định, thì đó chính là nguyên nhân gây ra lỗi. Phần tử <AssignTo> là bắt buộc phải được xác định trong chính sách Basicxác thực cho cả hoạt động Mã hoá và Giải mã.

    Chính sách BasicXác thực mẫu được hiển thị bên dưới được dùng cho thao tác Mã hoá, nhưng không có phần tử <AssignTo> được xác định:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
    </BasicAuthentication>
    

    Không triển khai được và gặp phải lỗi dưới đây:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <AssignTo> được xác định trong chính sách BasicConfirm cho thao tác Mã hoá hoặc Giải mã.

Để sửa ví dụ nêu trên, hãy thêm phần tử <AssignTo> vào chính sách như minh hoạ bên dưới:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

SourceRequired

Thông báo lỗi

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Source element must be present for Decode operation.

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

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Source element must be present for Decode operation.

Ảnh chụp màn hình mẫu

Nguyên nhân

Không triển khai được Proxy API nếu phần tử <Source> không được xác định trong chính sách BasicXác thực dùng để giải mã hoạt động. Phần tử <Source> là bắt buộc nếu <Operation> được chỉ định là Decode trong chính sách BasicConfirm.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách Basicxác thực được sử dụng trong proxy API. Nếu có bất kỳ chính sách nào mà phần tử <Source> không được định nghĩa và phần tử <Operation> được xác định là Decode, thì đó là nguyên nhân gây ra lỗi. Phần tử <Source> là bắt buộc nếu <Operation> được chỉ định là Decode trong chính sách BasicConfirm.

    Chính sách BasicConfirm được hiển thị bên dưới được dùng cho thao tác Decode, nhưng không có phần tử <Source> được xác định:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Decode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Không triển khai được và gặp phải lỗi dưới đây:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Độ phân giải

Đảm bảo rằng phần tử <Source> được xác định trong chính sách BasicXác thực khi sử dụng phần tử này cho thao tác Decode.

Để sửa ví dụ nêu trên, hãy thêm phần tử <Source> vào chính sách như minh hoạ bên dưới:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Decode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
    <Source>request.header.Authorization</Source>
</BasicAuthentication>