Khắc phục sự cố về lỗi triển khai chính sách GenerateJWT

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

InvalidNameForAdditionalClaim

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid name for additional claim : policy(policy_name) claim(claim_name).

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

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu tên của thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> của phần tử <AdditionalClaims> là một trong các tên đã đăng ký sau đây:

"kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

Thông báo xác nhận quyền sở hữu đã đăng ký được nêu rõ trong RFC7519.

Ví dụ: Việc sử dụng tên thông báo xác nhận quyền sở hữu iss trong phần tử <AdditionalClaims> sẽ dẫn đến lỗi này.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên thông báo xác nhận quyền sở hữu trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên thông báo xác nhận quyền sở hữu là iss:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Xác minh rằng tên thông báo xác nhận quyền sở hữu dùng trong phần tử <AdditionalClaims> trong tệp XML của chính sách Tạo JWT không thành công khớp với tên thông báo xác nhận quyền sở hữu được xác định trong thông báo lỗi (Bước 1 ở trên). Ví dụ: chính sách sau đây chỉ định thông báo xác nhận quyền sở hữu là iss, khớp với nội dung trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Nếu tên xác nhận quyền sở hữu dùng trong phần tử con <Claim>của phần tử<AdditionalClaims> là một trong các tên đã đăng ký sau đây:

    "kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

    thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Tạo JWT nêu trên, tên <Claim> được chỉ định là iss trong phần tử <AdditionalClaims>, dẫn đến lỗi:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

Độ phân giải

Không được sử dụng bất kỳ tên nào đã đăng ký như "kid", "iss", "sub", "aud", "iat", "exp", "nbf" hoặc "jti" trong phần tử con <Claim>của phần tử <AdditionalClaims>.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy thay đổi tên thông báo xác nhận quyền sở hữu thành status:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

InvalidTypeForAdditionalClaim

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

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

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu loại thông báo xác nhận quyền sở hữu được dùng trong phần tử con <Claim> của phần tử <AdditionalClaims> của chính sách GenerateJWT không thuộc một trong các loại sau:

string (mặc định), number, boolean hoặc map

Ví dụ: việc sử dụng loại thông báo xác nhận quyền sở hữu integer trong phần tử <AdditionalClaims> sẽ dẫn đến lỗi.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT, tên thông báo xác nhận quyền sở hữu và loại thông báo xác nhận quyền sở hữu trong thông báo lỗi. Ví dụ: Trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256, tên thông báo xác nhận quyền sở hữu là claim và loại thông báo xác nhận quyền sở hữu là integer:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Xác minh rằng tên và loại thông báo xác nhận quyền sở hữu dùng trong phần tử <AdditionalClaims> trong tệp XML của chính sách Tạo JWT không thành công khớp với tên và loại thông báo xác nhận quyền sở hữu được xác định trong thông báo lỗi ở Bước 1. Ví dụ: chính sách sau đây chỉ định thông báo xác nhận quyền sở hữu là claim và kiểu là integer, khớp với nội dung trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Nếu loại thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> của phần tử <AdditionalClaims> không thuộc một trong các loại dưới đây:

    string (mặc định), number, boolean hoặc map

    thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Tạo JWT nêu trên, loại <Claim> trong phần tử <AdditionalClaims> được chỉ định là integer. Vì integer không phải là loại được hỗ trợ nên bạn sẽ gặp lỗi:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Độ phân giải

Hãy đảm bảo rằng bạn chỉ sử dụng các kiểu dữ liệu được hỗ trợ như string, number, boolean hoặc map trong phần tử con <Claim> của phần tử <AdditionalClaims>.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy thay đổi loại thông báo xác nhận quyền sở hữu thành boolean.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

MissingNameForAdditionalClaim

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

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

Error Saving Revision 2
Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu tên thông báo xác nhận quyền sở hữu không được chỉ định trong phần tử con <Claim> của phần tử <AdditionalClaims> hoặc <AdditionalHeaders>.

Chẩn đoán

  1. Xác định tên của chính sách Generate JWT trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Kiểm tra tệp XML của chính sách Tạo JWT không thành công và xác minh xem có thiếu tên thông báo xác nhận quyền sở hữu trong phần tử con <Claims> thuộc phần tử <AdditionalClaims> hoặc <AdditionalHeaders> hay không. Ví dụ: Chính sách Tạo JWT sau đây không chỉ định tên thông báo xác nhận quyền sở hữu trong <AdditionalClaims> phần tử:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì tên <Claim> không được chỉ định trong phần tử <AdditionalClaims>, nên bạn gặp lỗi:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    

Độ phân giải

Hãy đảm bảo luôn chỉ định tên của thông báo xác nhận quyền sở hữu trong phần tử con <Claim> của phần tử <AdditionalClaims> hoặc <AdditionalHeaders>.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy chỉ định tên thông báo xác nhận quyền sở hữu như bên dưới:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

InvalidNameForAdditionalHeader

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid name for additional header : policy(policy_name)header(header_name).

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

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu tên của thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> của phần tử <AdditionalHeaders> là một trong các tiêu đề JWT chuẩn sau đây:

alg hoặc typ

Ví dụ: việc sử dụng tên xác nhận quyền sở hữu alg trong phần tử <AdditionalHeaders> sẽ gây ra lỗi.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên tiêu đề trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên tiêu đề là alg:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Xác minh rằng tên tiêu đề dùng trong phần tử con <Claim> thuộc phần tử <AdditionalHeaders> của XML chính sách Tạo JWT không thành công khớp với tên tiêu đề được xác định trong thông báo lỗi ở Bước 1. Ví dụ: chính sách sau đây chỉ định tiêu đề là alg, khớp với nội dung trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. Nếu tên tiêu đề dùng trong phần tử con <Claim> của phần tử <AdditionalClaims> là một trong các tiêu đề JWT chuẩn sau đây:

    alg hoặc typ

    thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Tạo JWT nêu trên, tên <Claim> được chỉ định là alg trong phần tử <AdditionalClaims>, dẫn đến lỗi:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

Độ phân giải

Đừng sử dụng các tiêu đề JWT chuẩn alg hoặc typ trong phần tử con <Claim> của phần tử <AdditionalHeaders>.

Để sửa ví dụ về chính sách Tạo JWT hiển thị ở trên, hãy sử dụng tên x5c trong phần tử con <Claim> của phần tử <AdditionalHeaders>:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTypeForAdditionalHeader

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

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

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim1) type(integer).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này sẽ xảy ra nếu loại thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> của phần tử <AdditionalHeaders> của chính sách GenerateJWT không thuộc một trong các loại sau:

string (mặc định), number, boolean hoặc map.

Ví dụ: việc sử dụng loại thông báo xác nhận quyền sở hữu integer trong phần tử <AdditionalHeaders> sẽ gây ra lỗi.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT, tên thông báo xác nhận quyền sở hữu và loại thông báo xác nhận quyền sở hữu trong thông báo lỗi. Ví dụ: Trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256, tên thông báo xác nhận quyền sở hữu là claim, và loại thông báo xác nhận quyền sở hữu là integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Xác minh rằng tên và loại thông báo xác nhận quyền sở hữu dùng trong phần tử <AdditionalClaims> trong tệp XML của chính sách Tạo JWT không thành công khớp với tên và loại thông báo xác nhận quyền sở hữu đã xác định trong thông báo lỗi ở Bước 1. Ví dụ: chính sách sau đây chỉ định thông báo xác nhận quyền sở hữu là claim và loại thông báo xác nhận quyền sở hữu là integer, khớp với nội dung trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. Nếu loại thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> của phần tử <AdditionalHeaders> không thuộc một trong các loại dưới đây:

    string (mặc định), number, boolean hoặc map

    thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Tạo JWT nêu trên, loại <Claim> trong phần tử <AdditionalHeaders> được chỉ định là integer. Vì integer không phải là loại được hỗ trợ nên bạn sẽ gặp lỗi:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Độ phân giải

Đảm bảo chỉ sử dụng các kiểu dữ liệu được hỗ trợ string, number, boolean hoặc map trong phần tử con <Claim> của phần tử <AdditionalHeaders>.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy thay đổi loại thông báo xác nhận quyền sở hữu thành boolean:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueOfArrayAttribute

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid value for array attribute: policy(policy_name)claim(claim_name).

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

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu giá trị của thuộc tính mảng trong phần tử con <Claim> của phần tử <AdditionalClaims> hoặc <AdditionalHeaders> không được đặt thành true hoặc false.

Ví dụ: việc đặt giá trị của thuộc tính mảng là yes trong phần tử con <Claim> của <AdditionalClaims> hoặc <AdditionalHeaders> gây ra lỗi.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên thông báo xác nhận quyền sở hữu trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên thông báo xác nhận quyền sở hữu là claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Xác minh rằng tên thông báo xác nhận quyền sở hữu dùng trong phần tử con <Claim> thuộc phần tử <AdditionalHeaders> của tệp XML chính sách Tạo JWT không thành công khớp với tên thông báo xác nhận quyền sở hữu được xác định trong thông báo lỗi ở Bước 1. Ví dụ: chính sách sau đây chỉ định tên xác nhận quyền sở hữu là claim, khớp với tên trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Nếu giá trị của thuộc tính array trong phần tử con <Claim> của phần tử <AdditionalClaims> không được đặt thành true hoặc false, thì đó là nguyên nhân gây ra lỗi.

    Do thuộc tính array trong phần tử con <Claim> của phần tử <AdditionalClaims> được đặt thành yes trong ví dụ trên nên bạn sẽ gặp lỗi:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    

Độ phân giải

Đảm bảo rằng giá trị của thuộc tính mảng trong phần tử con <Claim> của <AdditionalClaims> hoặc <AdditionalHeaders> được đặt thành true hoặc false.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy thay đổi giá trị của thuộc tính mảng thành true:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

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

Error Saving Revision 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu phần tử <PrivateKey> được sử dụng với thuật toán HS Family và phần tử <SecretKey> được sử dụng với thuật toán RSA Family. Lỗi cũng sẽ xảy ra nếu một trong các điều kiện này xảy ra.

Ví dụ: việc sử dụng phần tử <PrivateKey> bằng thuật toán Gia đình HS sẽ dẫn đến lỗi này.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT, tên phần tử và tên nhóm thuật toán trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256, tên phần tử là PrivateKey và nhóm thuật toán là HMAC:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Xác minh rằng phần tử và nhóm thuật toán dùng trong tệp XML chính sách Tạo JWT không thành công khớp với phần tử và nhóm thuật toán được xác định trong thông báo lỗi ở Bước 1. Ví dụ: chính sách sau đây chỉ định phần tử là PrivateKey và nhóm thuật toán là HMAC, khớp với nội dung trong thông báo lỗi:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
            <Id/>
            <AdditionalClaims>
                <Claim name='claim' ref='reqclaim' type='string' array=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. Nếu giá trị của phần tử <Algorithm>HS256 nhưng bạn đã sử dụng <PrivateKey>, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Tạo JWT nêu trên, <PrivateKey> được sử dụng mặc dù <PrivateKey> được đặt thành thuật toán nhóm HS256, dẫn đến lỗi:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

Độ phân giải

Đảm bảo chỉ sử dụng phần tử <PrivateKey> với các thuật toán RSA Family và phần tử <SecretKey> chỉ được dùng với thuật toán HS Family.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy dùng <SecretKey> từ chính sách GenerateJWT sử dụng thuật toán HS256:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueForElement

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid Value for element : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu giá trị được chỉ định trong phần tử <Algorithm> không phải là một trong các giá trị sau:

HS256, HS384, HS512, RS256, RS384, RS512

Ví dụ: việc chỉ định giá trị thuật toán là RS128 trong phần tử <Algorithm> sẽ dẫn đến lỗi này.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên phần tử trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử là Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Kiểm tra phần tử Generate JWT cho chính sách XML không thành công và kiểm tra giá trị được chỉ định cho phần tử <Algorithm>.

    Dưới đây là ví dụ về chính sách Tạo JWT:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. Kiểm tra giá trị được chỉ định trong phần tử <Algorithm>. Nếu giá trị này không phải là một trong các giá trị sau:

    HS256, HS384, HS512, RS256, RS384, RS512

    thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ Tạo chính sách JWT ở trên, tên <Algorithm> được chỉ định là HS128. Vì đây không phải là thuật toán được hỗ trợ nên bạn sẽ gặp lỗi:

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    

Độ phân giải

Hãy đảm bảo rằng giá trị được chỉ định trong phần tử <Algorithm> là một trong những giá trị được hỗ trợ:

HS256, HS384, HS512, RS256, RS384, RS512

Để sửa ví dụ về chính sách Tạo JWT nêu trên (sử dụng phần tử <SecretKey>), hãy thay đổi giá trị của <Algorithm> thành HS25. Lưu ý: Khi sử dụng phần tử <SecretKey>, bạn chỉ có thể sử dụng thuật toán Gia đình HS.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Missing configuration element : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra khi phần tử <PrivateKey> không được sử dụng với thuật toán Nhóm quảng cáo tìm kiếm thích ứng (RSA) trong chính sách Tạo JWT. Tương tự, lỗi cũng có thể xảy ra nếu phần tử <SecretKey> không được sử dụng với thuật toán Nhóm HS trong chính sách Tạo JWT.

Ví dụ: việc không sử dụng phần tử <PrivateKey> bằng thuật toán Gia đình RSA sẽ dẫn đến lỗi này.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên phần tử bị thiếu trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử bị thiếu là SecretKey.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Kiểm tra phần tử Generate JWT cho chính sách XML không thành công và xác minh rằng phần tử được biểu thị trong thông báo lỗi bị thiếu. Nếu thông tin này bị thiếu thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: trong chính sách sau đây, SecretKey bị thiếu và Algorithm được dùng là HS256:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Ví dụ về chính sách Tạo JWT sử dụng thuật toán Gia đình HS nhưng thiếu phần tử bắt buộc SecretKey nên dẫn đến lỗi:

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

Độ phân giải

Đảm bảo rằng phần tử <PrivateKey> bắt buộc được sử dụng với các thuật toán RSA Family và phần tử <SecretKey> bắt buộc được sử dụng với các thuật toán HS Family.

Để sửa ví dụ về chính sách Tạo JWT nêu trên (sử dụng thuật toán HS256), hãy thêm phần tử <SecretKey> vào chính sách Tạo JWT:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidKeyConfiguration

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

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

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu bạn không xác định phần tử con bắt buộc <Value> trong các phần tử <PrivateKey> hoặc <SecretKey> của chính sách Tạo JWT.

Chẩn đoán

  1. Xác định tên của chính sách Generate JWT trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Kiểm tra tệp XML của chính sách Tạo JWT không thành công và xác minh xem phần tử con <Value> có được xác định trong phần tử <PrivateKey> hoặc <SecretKey> hay không. Nếu bạn không xác định <Value>, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: theo chính sách sau đây, phần tử con <Value> không được xác định trong phần tử <SecretKey>:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì phần tử con <Value> không được xác định trong phần tử <SecretKey> của chính sách Tạo JWT nên bạn sẽ gặp lỗi:

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

Độ phân giải

Đảm bảo phần tử con <Value> luôn được xác định trong các phần tử <PrivateKey> hoặc <SecretKey> của chính sách Tạo JWT.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy xác định phần tử con <Value> trong phần tử <SecretKey> như minh hoạ dưới đây:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

EmptyElementForKeyConfiguration

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Empty Element for Key Configuration : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu thuộc tính tham chiếu trong phần tử con <Value> của phần tử <PrivateKey> hoặc <SecretKey> không được chỉ định hoặc để trống.

Ví dụ: nếu phần tử con <Value> của phần tử <SecretKey> bị trống, thì lỗi sẽ xảy ra.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên phần tử trống trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử trống là SecretKey/Value.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Kiểm tra XML của chính sách Tạo JWT không thành công và xác minh xem phần tử được xác định trong Bước 1 có bị trống hay không. Nếu giá trị trống thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây cho thấy phần tử con <Value> của phần tử <SecretKey> đang trống:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì phần tử con <Value> của phần tử <SecretKey> trong chính sách Tạo JWT bị trống nên bạn sẽ gặp lỗi:

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Độ phân giải

Đảm bảo rằng thuộc tính tham chiếu trong phần tử con <Value> của các phần tử <PrivateKey> hoặc <SecretKey> luôn được chỉ định và có tiền tố "private.".

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy sử dụng biến luồng private.privatekey trong phần tử con <Value> của phần tử <SecretKey>.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu tên biến luồng được chỉ định trong thuộc tính ref trong phần tử con <Value> của các phần tử <PrivateKey> hoặc <SecretKey> không có tiền tố riêng tư (private.).

For example :

Nếu tên biến luồng được chỉ định là mykey trong thuộc tính tham chiếu của phần tử con <Value> của phần tử <PrivateKey>, thì lỗi này sẽ xảy ra.

Chẩn đoán

  1. Trong thông báo lỗi, hãy xác định tên của chính sách Tạo JWT và tên của phần tử có tên biến không hợp lệ. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử là SecretKey/Value.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Kiểm tra XML của chính sách Tạo JWT không thành công và xác minh tên biến được dùng trong phần tử, như được xác định ở Bước 1. Nếu tên biến không có tiền tố private., thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây cho thấy phần tử con <Value> của phần tử <SecretKey> có tên biến không hợp lệ mykey:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì tên biến được chỉ định trong phần tử con <Value> của phần tử <SecretKey> của chính sách Tạo JWT không có tiền tố private. nên bạn sẽ gặp lỗi:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Độ phân giải

Đảm bảo rằng thuộc tính tham chiếu trong phần tử con <Value> của các phần tử <PrivateKey> hoặc <SecretKey> luôn được chỉ định và có tiền tố private..

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy sử dụng biến luồng private.privatekey trong phần tử con <Value> của phần tử <SecretKey>:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

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

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu giá trị (bí mật) được chỉ định rõ ràng trong:

  • Các phần tử con <Value> hoặc <Password> của phần tử <PrivateKey> hoặc
  • Phần tử con <Value> của phần tử <SecretKey>

trong chính sách Tạo JWT.

Ví dụ: nếu mã bí mật được chỉ định rõ ràng là abc trong phần tử con <Value> của phần tử <SecretKey>, thì lỗi này sẽ xảy ra.

Chẩn đoán

  1. Xác định tên của chính sách Tạo JWT và tên phần tử mà trong đó mã bí mật được chỉ định rõ ràng từ thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử là SecretKey/Value.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Kiểm tra XML của chính sách Tạo JWT không thành công và xác minh xem mã bí mật có được chỉ định rõ ràng trong phần tử được xác định ở Bước 1 hay không. Nếu bạn chỉ định rõ giá trị này, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: Chính sách sau đây cho thấy khoá bí mật đã được chỉ định rõ ràng trong phần tử con <Value> của phần tử <SecretKey>:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì mã bí mật được chỉ định rõ ràng trong phần tử con <Value> của phần tử <SecretKey> của chính sách Tạo JWT nên bạn sẽ gặp lỗi:

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Độ phân giải

Đảm bảo rằng giá trị luôn được chỉ định làm biến luồng trong phần tử con <Value> của các phần tử <PrivateKey> hoặc <SecretKey>.

Để sửa ví dụ về chính sách Tạo JWT nêu trên, hãy dùng biến luồng private.secretkey trong thuộc tính ref của phần tử con <Value> của <SecretKey>:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTimeFormat

Thông báo lỗi

Thông báo lỗi sau 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:

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

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

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

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

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu giá trị được chỉ định trong phần tử <NotBefore> không thuộc một trong các định dạng được hỗ trợ:

sortable, RFC 1123, RFC 850, ANCI-C

Ví dụ: nếu giá trị được chỉ định trong <NotBefore>20-JUN-1990 08:03 (định dạng không được hỗ trợ), thì lỗi này sẽ xảy ra.

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

Chẩn đoán

  1. Trong thông báo lỗi, hãy xác định tên của chính sách Tạo JWT và tên phần tử có định dạng thời gian không hợp lệ. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách Tạo JWT là JWT-Generate-HS256 và tên phần tử là NotBefore.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Kiểm tra phần Tạo XML chính sách JWT bị lỗi và xác minh định dạng thời gian dùng trong phần tử được xác định ở Bước 1. Nếu phần tử không sử dụng bất kỳ định dạng được hỗ trợ nào:

    sortable, RFC 1123, RFC 850, ANCI-C

    thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: Chính sách sau đây cho thấy phần tử con <NotBefore> sử dụng định dạng thời gian không được hỗ trợ:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    Vì phần tử <NotBefore> của chính sách Tạo JWT không sử dụng bất kỳ định dạng thời gian nào được hỗ trợ nên bạn sẽ gặp lỗi:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Độ phân giải

Đảm bảo giá trị được chỉ định trong phần tử <NotBefore> sử dụng một trong những định dạng được hỗ trợ:

sortable, RFC 1123, RFC 850, ANCI-C

Để sửa chính sách Tạo JWT mẫu, hãy sửa đổi ngày trong phần tử <NotBefore> để dùng định dạng sortable như minh hoạ dưới đây:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>