Temel Kimlik Doğrulama politikası dağıtım hatasıyla ilgili sorunları giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

UserNameRequired

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

<User> öğesi TemelKimlik Doğrulama politikasında tanımlanmamışsa API Proxy'sinin dağıtımı başarısız olur. <User> öğesi, hem Kodlama hem de Kod Çözme işlemleri için zorunludur.

Teşhis

  1. API proxy'sinde kullanılan tüm Basic Authentication politikalarını inceleyin. <User> öğesinin belirtilmediği bir politika varsa hatanın nedeni budur. Temel Kimlik Doğrulama politikasında Kodlama veya Kod Çözme işlemleri için <User> öğesi zorunludur.

    Aşağıda gösterilen örnek Temel Kimlik Doğrulama politikası, Kodlama işlemi için kullanılmıştır ancak <User> öğesi tanımlanmamıştır:

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

    Dağıtım aşağıdaki hatayı vererek başarısız oluyor:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Çözünürlük

<User> öğesinin, Kodlama veya Kod Çözme işlemi için Temel Kimlik Doğrulaması politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için <User> öğesini aşağıda gösterildiği gibi politikaya ekleyin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

<Password> öğesi TemelKimlik Doğrulama politikasında tanımlanmamışsa API Proxy'sinin dağıtımı başarısız olur. <Password> öğesi, hem Kodlama hem de Kod Çözme işlemleri için zorunludur.

Teşhis

  1. API proxy'sinde kullanılan tüm Basic Authentication politikalarını inceleyin. <Password> öğesinin tanımlanmadığı bir politika varsa hatanın nedeni budur. Kod Çözme veya Kod Çözme işlemi için Temel Kimlik Doğrulama politikasında <Password> öğesi zorunludur.

    Aşağıda gösterilen örnek Temel Kimlik Doğrulama politikası, Kodlama işlemi için kullanılmıştır ancak <Password> öğesi tanımlanmamıştır:

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

    Dağıtım aşağıdaki hatayı vererek başarısız oluyor:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Çözünürlük

<Password> öğesinin, Kodlama veya Kod Çözme işlemi için Temel Kimlik Doğrulaması politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için <Password> öğesini aşağıda gösterildiği gibi politikaya ekleyin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

<AssignTo> öğesi TemelKimlik Doğrulama politikasında tanımlanmamışsa API Proxy'sinin dağıtımı başarısız olur. <AssignTo> öğesi, hem Kodlama hem de Kod Çözme işlemleri için zorunludur.

Teşhis

  1. API proxy'sinde kullanılan tüm Basic Authentication politikalarını inceleyin. <AssignTo> öğesinin tanımlanmadığı bir politika varsa hatanın nedeni budur. Hem Kodlama hem de Kod Çözme işlemleri için <AssignTo> öğesinin Temel Kimlik Doğrulama politikasında tanımlanması zorunludur.

    Aşağıda gösterilen örnek Temel Kimlik Doğrulama politikası, Kodlama işlemi için kullanılmıştır ancak <AssignTo> öğesi tanımlanmamıştır:

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

    Dağıtım aşağıdaki hatayı vererek başarısız oluyor:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Çözünürlük

<AssignTo> öğesinin, Kodlama veya Kod Çözme işlemi için Temel Kimlik Doğrulaması politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için <AssignTo> öğesini aşağıda gösterildiği gibi politikaya ekleyin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Kod çözme işlemi için kullanılan Basic Authentication politikasında <Source> öğesi tanımlı değilse API Proxy'sinin dağıtımı başarısız olur. Temel Kimlik Doğrulama politikasında <Operation>, Decode olarak belirtiliyorsa <Source> öğesi zorunludur.

Teşhis

  1. API proxy'sinde kullanılan tüm Basic Authentication politikalarını inceleyin. <Source> öğesinin tanımlanmadığı ve <Operation> öğesinin Decode olarak tanımlandığı bir politika varsa hatanın nedeni budur. Temel Kimlik Doğrulama politikasında <Operation>, Decode olarak belirtiliyorsa <Source> öğesi zorunludur.

    Aşağıda gösterilen örnek Basic Authentication politikası, Decode işlemi için kullanılmıştır ancak <Source> öğesi tanımlanmamıştır:

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

    Dağıtım aşağıdaki hatayı vererek başarısız oluyor:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Çözünürlük

Decode işlemi için kullanıldığında <Source> öğesinin Basic Authentication politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için <Source> öğesini aşağıda gösterildiği gibi politikaya ekleyin:

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