عیب یابی خطای استقرار خط مشی GenerateJWT

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

نام نامعتبربرایادعای اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نام claim استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از نام‌های ثبت شده زیر باشد:

"بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"

ادعاهای ثبت‌شده در RFC7519 مشخص شده‌اند.

برای مثال، استفاده از نام ادعا iss در زیر عنصر <AdditionalClaims> منجر به این خطا خواهد شد.

تشخیص

  1. نام سیاست Generate JWT و نام ادعا را از پیام خطا مشخص کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام ادعا iss است:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. تأیید کنید که نام ادعا (Claim) استفاده شده در عنصر <AdditionalClaims> در XML مربوط به Generate JWT policy ناموفق، با نام ادعا (Claim) شناسایی شده در پیام خطا (مرحله 1 در بالا) مطابقت داشته باشد. برای مثال، سیاست زیر ادعا را به صورت iss مشخص می‌کند که با آنچه در پیام خطا آمده است، مطابقت دارد:

    <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. اگر نام ادعا (Claim) استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از نام‌های ثبت‌شده‌ی زیر باشد:

    "بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"

    پس علت خطا همینه.

    در مثال Generate JWT policy که در بالا نشان داده شده است، نام <Claim> در زیر عنصر <AdditionalClaims> به صورت iss مشخص شده است که منجر به خطای زیر می‌شود:

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

وضوح تصویر

از هیچ یک از نام‌های ثبت‌شده‌ی "kid"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf" یا "jti" در عنصر فرزند <Claim> از عنصر <AdditionalClaims> استفاده نکنید.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، نام claim را به 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>

نوع نامعتبربرایادعای اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نوع ادعای استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> از سیاست GenerateJWT یکی از انواع زیر نباشد:

string (پیش‌فرض)، number ، boolean یا map

برای مثال، استفاده از نوع ادعایی integer در زیر عنصر <AdditionalClaims> منجر به خطا خواهد شد.

تشخیص

  1. نام سیاست Generate JWT، نام ادعا (Claim) و نوع ادعا (Claim) را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 ، نام ادعا، claim و نوع ادعا، integer است:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. تأیید کنید که نام ادعا و نوع استفاده شده در عنصر <AdditionalClaims> در XML ناموفق Generate JWT policy با نام و نوع ادعا که در پیام خطا در مرحله 1 مشخص شده است، مطابقت داشته باشد. برای مثال، سیاست زیر ادعا را به عنوان claim و نوع آن را به عنوان integer مشخص می‌کند که با آنچه در پیام خطا آمده است، مطابقت دارد:

    <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. اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از انواع زیر نباشد:

    string (پیش‌فرض)، number ، boolean یا map

    پس علت خطا همینه.

    در مثال Generate JWT policy که در بالا نشان داده شده است، نوع <Claim> در زیر عنصر <AdditionalClaims> به صورت integer مشخص شده است. از آنجا که integer یک نوع پشتیبانی شده نیست، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که فقط از انواع داده‌ی پشتیبانی‌شده مانند string ، number ، boolean یا map در عنصر فرزند <Claim> از عنصر <AdditionalClaims> استفاده شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، نوع Claim را به 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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نام ادعا (Claim) در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص نشده باشد.

تشخیص

  1. نام سیاست Generate JWT را از پیام خطا تشخیص دهید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 است:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. خط‌مشی XML ناموفق Generate JWT را بررسی کنید و بررسی کنید که آیا نام ادعا در عنصر فرزند <Claims> در زیر عنصر <AdditionalClaims> یا <AdditionalHeaders> وجود ندارد یا خیر. برای مثال، خط‌مشی Generate JWT زیر، نام ادعا را در زیر عنصر <AdditionalClaims> مشخص نمی‌کند:

    <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>
    

    از آنجا که نام <Claim> در زیر عنصر <AdditionalClaims> مشخص نشده است، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که نام ادعا (Claim) همیشه در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، نام claim را مطابق شکل زیر مشخص کنید:

<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>

نام نامعتبربرای سربرگ اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نام claim استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> یکی از هدرهای استاندارد JWT زیر باشد:

alg یا typ

برای مثال، استفاده از نام claim به نام alg در زیر عنصر <AdditionalHeaders> باعث بروز خطا خواهد شد.

تشخیص

  1. نام سیاست Generate JWT و نام هدر را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام هدر، alg است:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. تأیید کنید که نام هدر استفاده شده در عنصر فرزند <Claim> در زیر عنصر <AdditionalHeaders> در XML مربوط به Generate JWT policy ناموفق، با نام هدر شناسایی شده در پیام خطا در مرحله 1 مطابقت داشته باشد. برای مثال، سیاست زیر هدر را به صورت alg مشخص می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

    <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. اگر نام هدر استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از هدرهای استاندارد JWT زیر باشد:

    alg یا typ

    پس علت خطا همینه.

    در مثال Generate JWT policy که در بالا نشان داده شده است، نام <Claim> به صورت alg در زیر عنصر <AdditionalClaims> مشخص شده است که منجر به خطای زیر می‌شود:

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

وضوح تصویر

alg یا typ هدرهای استاندارد JWT در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> استفاده نکنید.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، از نام x5c در عنصر فرزند <Claim> از عنصر <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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نوع ادعای استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> از سیاست GenerateJWT یکی از انواع زیر نباشد:

string (پیش‌فرض)، number ، boolean یا map .

برای مثال، استفاده از نوع ادعایی integer در زیر عنصر <AdditionalHeaders> باعث بروز خطا خواهد شد.

تشخیص

  1. نام سیاست Generate JWT، نام ادعا (Claim) و نوع ادعا (Claim) را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 ، نام ادعا claim, و نوع ادعا integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. تأیید کنید که نام ادعا و نوع ادعا استفاده شده در عنصر <AdditionalClaims> در XML ناموفق Generate JWT policy با نام ادعا و نوع ادعا که در پیام خطا در مرحله 1 مشخص شده است، مطابقت داشته باشد. برای مثال، سیاست زیر ادعا را به عنوان claim و نوع ادعا را به عنوان integer مشخص می‌کند که با آنچه در پیام خطا آمده است، مطابقت دارد:

    <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. اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> یکی از انواع زیر نباشد:

    string (پیش‌فرض)، number ، boolean یا map

    پس علت خطا همینه.

    در مثال Generate JWT policy که در بالا نشان داده شده است، نوع <Claim> در زیر عنصر <AdditionalHeaders> به صورت integer مشخص شده است. از آنجا که integer یک نوع پشتیبانی شده نیست، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که فقط از انواع داده‌ی پشتیبانی‌شده‌ی string ، number ، boolean یا map در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> استفاده شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، نوع Claim را به 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>

ویژگی مقدار نامعتبر آرایه

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که مقدار ویژگی آرایه در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یا <AdditionalHeaders> روی true یا false تنظیم نشده باشد.

برای مثال، تنظیم مقدار ویژگی آرایه به صورت yes در عنصر فرزند <Claim> از <AdditionalClaims> یا <AdditionalHeaders> باعث ایجاد خطا می‌شود.

تشخیص

  1. نام سیاست Generate JWT و نام ادعا را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام ادعا، claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. تأیید کنید که نام ادعا (Claim) استفاده شده در عنصر فرزند <Claim> در زیر عنصر <AdditionalHeaders> در XML مربوط به Generate JWT policy ناموفق، با نام ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت داشته باشد. برای مثال، سیاست زیر نام ادعا را claim مشخص می‌کند که با آنچه در پیام خطا آمده است، مطابقت دارد:

    <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. اگر مقدار ویژگی array در عنصر فرزند <Claim> از عنصر <AdditionalClaims> روی true یا false تنظیم نشده باشد، علت خطا همین است.

    از آنجا که در مثال بالا، ویژگی array در عنصر فرزند <Claim> از عنصر <AdditionalClaims> روی yes تنظیم شده است، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که مقدار ویژگی آرایه در عنصر فرزند <Claim> از <AdditionalClaims> یا <AdditionalHeaders> روی true یا false تنظیم شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، مقدار ویژگی array را به 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>

پیکربندی نامعتبر برای اقدام و الگوریتم

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت 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>).

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می‌دهد که عنصر <PrivateKey> با الگوریتم‌های خانواده HS و عنصر <SecretKey> با الگوریتم‌های خانواده RSA استفاده شود. همچنین در صورت درست بودن هر یک از این شرایط، این خطا رخ خواهد داد.

برای مثال، استفاده از عنصر <PrivateKey> با الگوریتم‌های HS Family منجر به این خطا می‌شود.

تشخیص

  1. نام سیاست Generate JWT، نام عنصر و نام خانواده الگوریتم را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر نام سیاست Generate JWT، JWT-Generate-HS256 ، نام عنصر، PrivateKey و خانواده الگوریتم، HMAC است:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. تأیید کنید که عنصر و خانواده الگوریتم استفاده شده در سیاست ناموفق Generate JWT XML با عنصر و خانواده الگوریتم شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. برای مثال، سیاست زیر عنصر را به عنوان PrivateKey و خانواده الگوریتم را به عنوان HMAC مشخص می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

    <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. اگر مقدار عنصر <Algorithm> HS256 باشد، اما شما از <PrivateKey> استفاده کرده باشید، پس علت خطا همین است.

    در مثال Generate JWT policy که در بالا نشان داده شده است، <PrivateKey> با وجود اینکه <PrivateKey> روی یک الگوریتم خانوادگی، HS256 ، تنظیم شده است، استفاده می‌شود و منجر به خطای زیر می‌شود:

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

وضوح تصویر

مطمئن شوید که عنصر <PrivateKey> فقط با الگوریتم‌های خانواده RSA و عنصر <SecretKey> فقط با الگوریتم‌های خانواده HS استفاده می‌شود.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، از <SecretKey> از policy GenerateJWT که از الگوریتم 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>

مقدار نامعتبربرای عنصر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که مقدار مشخص شده در عنصر <Algorithm> یکی از مقادیر زیر نباشد:

HS256 ، HS384 ، HS512 ، RS256 ، RS384 ، RS512

برای مثال، مشخص کردن مقدار الگوریتم به صورت RS128 در عنصر <Algorithm> منجر به این خطا می‌شود.

تشخیص

  1. نام سیاست Generate JWT و نام عنصر را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام عنصر، Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. فایل XML مربوط به Generate JWT policy را که با شکست مواجه شده است، بررسی کنید و مقدار مشخص شده برای عنصر <Algorithm> را بررسی کنید.

    در اینجا یک نمونه از سیاست Generate 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. مقدار مشخص شده در عنصر <Algorithm> را بررسی کنید. اگر یکی از مقادیر زیر نبود:

    HS256 ، HS384 ، HS512 ، RS256 ، RS384 ، RS512

    پس علت خطا همینه.

    در مثال Generate JWT policy که در بالا نشان داده شده است، نام <Algorithm> به صورت HS128 مشخص شده است. از آنجا که این یک الگوریتم پشتیبانی شده نیست، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که مقدار مشخص شده در عنصر <Algorithm> یکی از مقادیر پشتیبانی شده باشد:

HS256 ، HS384 ، HS512 ، RS256 ، RS384 ، RS512

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است و از عنصر <SecretKey> استفاده می‌کند، مقدار <Algorithm> را به HS25 تغییر دهید. توجه داشته باشید، وقتی از عنصر <SecretKey> استفاده می‌شود، فقط می‌توانید از الگوریتم‌های خانواده 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>

عنصر پیکربندی گمشده

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که عنصر <PrivateKey> با الگوریتم‌های خانواده RSA در سیاست Generate JWT استفاده نشود . به همین ترتیب، اگر عنصر <SecretKey> با الگوریتم‌های خانواده HS در سیاست Generate JWT استفاده نشود ، این خطا می‌تواند رخ دهد.

برای مثال، عدم استفاده از عنصر <PrivateKey> با الگوریتم‌های خانواده RSA منجر به این خطا می‌شود.

تشخیص

  1. نام سیاست Generate JWT و نام عنصر گمشده را از پیام خطا مشخص کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام عنصر گمشده، SecretKey است.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. فایل XML مربوط به Generate JWT policy را که با خطا مواجه شده است، بررسی کنید و مطمئن شوید که عنصری که در پیام خطا نشان داده شده است، وجود ندارد. اگر وجود ندارد، پس علت خطا همین است.

    برای مثال، در سیاست زیر، SecretKey وجود ندارد و Algorithm مورد استفاده 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>
    

    مثال Generate JWT policy از الگوریتم‌های HS Family استفاده می‌کند، اما عنصر اجباری SecretKey وجود ندارد و منجر به خطای زیر می‌شود:

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

وضوح تصویر

مطمئن شوید که عنصر اجباری <PrivateKey> با الگوریتم‌های خانواده RSA و عنصر اجباری <SecretKey> با الگوریتم‌های خانواده HS استفاده می‌شود.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است و از الگوریتم HS256 استفاده می‌کند، عنصر <SecretKey> را به Generate JWT policy اضافه کنید:

<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>

پیکربندی کلید نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که عنصر فرزند اجباری <Value> در عناصر <PrivateKey> یا <SecretKey> در سیاست Generate JWT تعریف نشده باشد.

تشخیص

  1. نام سیاست Generate JWT را از پیام خطا تشخیص دهید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 است.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. خط‌مشی XML مربوط به Generate JWT را که با شکست مواجه شده است، بررسی کنید و بررسی کنید که آیا عنصر فرزند <Value> در عناصر <PrivateKey> یا <SecretKey> تعریف نشده است یا خیر. اگر <Value> تعریف نشده باشد، دلیل خطا همین است.

    برای مثال، در سیاست زیر، عنصر فرزند <Value> در عنصر <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>
    

    از آنجا که عنصر فرزند <Value> در عنصر <SecretKey> از سیاست Generate JWT تعریف نشده است، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که عنصر فرزند <Value> همیشه در عناصر <PrivateKey> یا <SecretKey> از سیاست Generate JWT تعریف شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، عنصر فرزند <Value> را زیر عنصر <SecretKey> مطابق شکل زیر تعریف کنید:

<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>

پیکربندی عنصر خالی برای کلید

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که ویژگی ref در عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> مشخص نشده یا خالی باشد.

برای مثال، اگر عنصر فرزند <Value> از عنصر <SecretKey> خالی باشد، خطا رخ می‌دهد.

تشخیص

  1. نام سیاست Generate JWT و نام عنصر خالی را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام عنصر خالی، SecretKey/Value است.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. خط‌مشی XML مربوط به Generate JWT را که با شکست مواجه شده است، بررسی کنید و بررسی کنید که آیا عنصر شناسایی‌شده در مرحله ۱ خالی است یا خیر. اگر خالی باشد، علت خطا همین است.

    برای مثال، سیاست زیر نشان می‌دهد که عنصر فرزند <Value> از عنصر <SecretKey> خالی است:

    <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>
    

    از آنجا که عنصر فرزند <Value> از عنصر <SecretKey> در سیاست Generate JWT خالی است، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که ویژگی ref در عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> همیشه مشخص شده و دارای پیشوند " private. " باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، از متغیر جریان private.privatekey در عنصر فرزند <Value> از عنصر <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>

نام متغیر نامعتبربرای رمز

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که نام متغیر جریان مشخص شده در ویژگی ref در عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> شامل پیشوند private ( private. ) نباشد.

برای مثال:

اگر نام متغیر جریان در ویژگی ref عنصر فرزند <Value> از عنصر <PrivateKey> به عنوان mykey مشخص شده باشد، این خطا رخ می‌دهد.

تشخیص

  1. نام سیاست Generate JWT و نام عنصری که نام متغیر نامعتبر دارد را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام عنصر SecretKey/Value است.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. فایل XML مربوط به Generate JWT policy را که با شکست مواجه شده است، بررسی کنید و نام متغیر استفاده شده در عنصر شناسایی شده در مرحله 1 را تأیید کنید. اگر نام متغیر پیشوند private. را نداشته باشد، علت خطا همین است.

    برای مثال، سیاست زیر نشان می‌دهد که عنصر فرزند <Value> از عنصر <SecretKey> دارای متغیری با نام نامعتبر به 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>
    

    از آنجا که نام متغیر مشخص شده در عنصر فرزند <Value> از عنصر <SecretKey> از سیاست Generate JWT پیشوند private. را ندارد، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که ویژگی ref در عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> همیشه مشخص شده و دارای پیشوند private. باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، از متغیر جریان private.privatekey در عنصر فرزند <Value> از عنصر <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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که مقدار (secret) به طور صریح در موارد زیر مشخص شده باشد:

  • عناصر فرزند <Value> یا <Password> از عنصر <PrivateKey> یا
  • عنصر فرزند <Value> از عنصر <SecretKey>

در سیاست Generate JWT.

برای مثال، اگر رمز به صراحت به صورت abc در عنصر فرزند <Value> از عنصر <SecretKey> مشخص شده باشد، این خطا رخ می‌دهد.

تشخیص

  1. نام سیاست Generate JWT و نام عنصری که در آن رمز به صراحت از پیام خطا مشخص شده است را مشخص کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر SecretKey/Value است.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. فایل XML مربوط به Generate JWT policy را که با شکست مواجه شده است، بررسی کنید و بررسی کنید که آیا رمز به صراحت در عنصر مشخص شده در مرحله 1 مشخص شده است یا خیر. اگر به صراحت مشخص شده باشد، علت خطا همین است.

    برای مثال، سیاست زیر نشان می‌دهد که رمز به صراحت در عنصر فرزند <Value> از عنصر <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>
    

    از آنجا که این رمز به صراحت در عنصر فرزند <Value> از عنصر <SecretKey> از سیاست Generate JWT مشخص شده است، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که مقدار همیشه به عنوان یک متغیر جریان در عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> مشخص شده باشد.

برای اصلاح مثال Generate JWT policy که در بالا نشان داده شده است، از متغیر جریان private.secretkey در ویژگی ref عنصر فرزند <Value> از <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>

قالب زمانی نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

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

مثال اسکرین شات

در رابط کاربری Edge، یک کادر محاوره‌ای با یک خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می‌دهد که مقدار مشخص شده در عنصر <NotBefore> جزو یکی از فرمت‌های پشتیبانی شده نباشد:

sortable ، RFC 1123 ، RFC 850 ، ANCI-C

برای مثال، اگر مقدار مشخص شده در <NotBefore> برابر با 20-JUN-1990 08:03 باشد، که فرمت پشتیبانی شده‌ای نیست، این خطا رخ می‌دهد.

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

تشخیص

  1. نام سیاست Generate JWT و نام عنصری که فرمت زمانی نامعتبر دارد را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام سیاست Generate JWT، JWT-Generate-HS256 و نام عنصر NotBefore است.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. خطای ناموفق Generate JWT policy XML را بررسی کنید و فرمت زمان مورد استفاده در عنصر شناسایی شده در مرحله 1 را تأیید کنید. اگر عنصر از هیچ یک از فرمت‌های پشتیبانی شده استفاده نمی‌کند:

    sortable ، RFC 1123 ، RFC 850 ، ANCI-C

    پس علت خطا همینه.

    برای مثال، سیاست زیر نشان می‌دهد که عنصر فرزند <NotBefore> از یک قالب زمانی پشتیبانی نشده استفاده می‌کند:

    <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>
    

    از آنجا که عنصر <NotBefore> از سیاست Generate JWT از هیچ یک از قالب‌های زمانی پشتیبانی‌شده استفاده نمی‌کند، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که مقدار مشخص شده در عنصر <NotBefore> از یکی از فرمت‌های پشتیبانی شده استفاده می‌کند:

sortable ، RFC 1123 ، RFC 850 ، ANCI-C

برای اصلاح مثال Generate JWT policy، تاریخ را در عنصر <NotBefore> تغییر دهید تا از قالب sortable مانند زیر استفاده کند:

<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>