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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

UserNameRequired

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

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

Teşhis

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

    Aşağıda gösterilen örnek BasicAuthentication politikası, Kodlama işlemi için kullanılır ancak <User> öğesi tanımlı değildir:

    <?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 Kodu Çözme işleminin Temel Kimlik Doğrulama politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için politika içine <User> öğesini aşağıda gösterildiği gibi 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 üzerinden dağıtılması şu hata mesajını gösterir:

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

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

Teşhis

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

    Aşağıda gösterilen örnek BasicAuthentication politikası, Kodlama işlemi için kullanılır ancak <Password> öğesi tanımlı değildir:

    <?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 Kodu Çözme işleminin Temel Kimlik Doğrulama politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için politika içine <Password> öğesini aşağıda gösterildiği gibi 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 üzerinden dağıtılması şu hata mesajını gösterir:

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

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

Teşhis

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

    Aşağıda gösterilen örnek BasicAuthentication politikası, Kodlama işlemi için kullanılır ancak <AssignTo> öğesi tanımlı değildir:

    <?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 Kodu Çözme işleminin Temel Kimlik Doğrulama politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için politika içine <AssignTo> öğesini aşağıda gösterildiği gibi 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 üzerinden dağıtılması şu hata mesajını gösterir:

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

<Source> öğesi, kod çözme işlemi için kullanılan BasicAuthentication politikasında tanımlanmamışsa API Proxy'sinin dağıtımı başarısız olur. <Operation>, BasicAuthentication politikasında Decode olarak belirtilmişse <Source> öğesi zorunludur.

Teşhis

  1. API proxy'sinde kullanılan tüm BasicAuthentication politikalarını inceleyin. <Source> öğesinin tanımlanmadığı ve <Operation> öğesinin Decode olarak tanımlandığı bir politika varsa hatanın nedeni budur. <Operation>, BasicAuthentication politikasında Decode olarak belirtilmişse <Source> öğesi zorunludur.

    Aşağıda gösterilen örnek BasicAuthentication politikası, Decode işlemi için kullanılmaktadı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 BasicAuthentication politikasında tanımlandığından emin olun.

Yukarıda gösterilen örneği düzeltmek için politika içine <Source> öğesini aşağıda gösterildiği gibi 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>