Solução de problemas de erros na implantação da política BasicAuthentication

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

UserNameRequired

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela de exemplo

Causa

A implantação do Proxy de API falhará se o elemento <User> não estiver definido na política BasicAuthentication. O elemento <User> é obrigatório para operações de codificação e decodificação.

Diagnóstico

  1. Examine todas as políticas básicas de autenticação usadas no proxy de API. Se houver alguma política em que o elemento <User> não seja especificado, essa será a causa do erro. O elemento <User> é obrigatório na política BasicAuthentication para operações de codificação de decodificação.

    A política de amostra BasicAuthentication mostrada abaixo é usada para a operação de codificação, mas não tem o elemento <User> definido:

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

    A implantação falha com o erro abaixo:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Resolução

O elemento <User> precisa estar definido na política BasicAuthentication para a operação "Codificar" ou "Decodificar".

Para corrigir o exemplo mostrado acima, inclua o elemento <User> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela de exemplo

Causa

A implantação do Proxy de API falhará se o elemento <Password> não estiver definido na política BasicAuthentication. O elemento <Password> é obrigatório para operações de codificação e decodificação.

Diagnóstico

  1. Examine todas as políticas básicas de autenticação usadas no proxy de API. Se houver uma política em que o elemento <Password> não esteja definido, essa é a causa do erro. O elemento <Password> é obrigatório na política BasicAuthentication para a operação "Codificar" ou "Decodificar".

    A política de amostra BasicAuthentication mostrada abaixo é usada para a operação de codificação, mas não tem o elemento <Password> definido:

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

    A implantação falha com o erro abaixo:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Resolução

O elemento <Password> precisa estar definido na política BasicAuthentication para a operação "Codificar" ou "Decodificar".

Para corrigir o exemplo mostrado acima, inclua o elemento <Password> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela de exemplo

Causa

A implantação do Proxy de API falhará se o elemento <AssignTo> não estiver definido na política BasicAuthentication. O elemento <AssignTo> é obrigatório para operações de codificação e decodificação.

Diagnóstico

  1. Examine todas as políticas básicas de autenticação usadas no proxy de API. Se houver uma política em que o elemento <AssignTo> não esteja definido, essa é a causa do erro. O elemento <AssignTo> precisa ser definido na política BasicAuthentication para as operações de codificação e decodificação.

    A política de amostra BasicAuthentication mostrada abaixo é usada para a operação de codificação, mas não tem o elemento <AssignTo> definido:

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

    A implantação falha com o erro abaixo:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Resolução

O elemento <AssignTo> precisa estar definido na política BasicAuthentication para a operação "Codificar" ou "Decodificar".

Para corrigir o exemplo mostrado acima, inclua o elemento <AssignTo> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela de exemplo

Causa

A implantação da API Proxy falhará se o elemento <Source> não estiver definido na política BasicAuthentication usada para operação de decodificação. O elemento <Source> será obrigatório se <Operation> for especificado como Decode na política BasicAuthentication.

Diagnóstico

  1. Examine todas as políticas básicas de autenticação usadas no proxy de API. Se houver uma política em que o elemento <Source> não esteja definido e o elemento <Operation> seja definido como Decode, essa será a causa do erro. O elemento <Source> será obrigatório se <Operation> for especificado como Decode na política BasicAuthentication.

    A amostra de política de autenticação básica mostrada abaixo é usada para a operação Decode, mas não tem o elemento <Source> definido:

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

    A implantação falha com o erro abaixo:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Resolução

Verifique se o elemento <Source> está definido na política BasicAuthentication quando ele é usado para a operação Decode.

Para corrigir o exemplo mostrado acima, inclua o elemento <Source> na política, conforme mostrado abaixo:

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