BasicAuthentication 정책 배포 오류 문제 해결

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

UserNameRequired

오류 메시지

Edge UI 또는 Edge Management API를 통한 API 프록시 배포가 실패하고 다음 오류 메시지가 표시됩니다.

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

오류 메시지 예

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

예시 스크린샷

원인

<User> 요소가 BasicAuthentication 정책에 정의되지 않은 경우 API 프록시 배포는 실패합니다. 인코딩 및 디코딩 작업의 경우 <User> 요소는 필수입니다.

진단

  1. API 프록시에 사용되는 모든 BasicAuthentication 정책을 검토합니다. <User> 요소가 지정되지 않은 정책이 있는 경우 이는 오류의 원인이 됩니다. <User> 요소는 인코딩 또는 디코딩 작업의 BasicAuthentication 정책에서 필수입니다.

    아래의 샘플 BasicAuthentication 정책은 인코딩 작업에 사용되지만 <User> 요소가 정의되어 있지 않습니다.

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

    다음 오류와 함께 배포가 실패합니다.

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

해결 방법

<User> 요소가 인코딩 또는 디코딩 작업의 BasicAuthentication 정책 내에 정의되어 있는지 확인합니다.

위에 표시된 예시를 수정하려면 아래와 같이 정책 내에 <User> 요소를 포함합니다.

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

오류 메시지

Edge UI 또는 Edge Management API를 통한 API 프록시 배포가 실패하고 다음 오류 메시지가 표시됩니다.

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

오류 메시지 예

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

예시 스크린샷

원인

<Password> 요소가 BasicAuthentication 정책에 정의되지 않은 경우 API 프록시 배포는 실패합니다. 인코딩 및 디코딩 작업의 경우 <Password> 요소는 필수입니다.

진단

  1. API 프록시에 사용되는 모든 BasicAuthentication 정책을 검토합니다. <Password> 요소가 정의되지 않은 정책이 있는 경우 이는 오류의 원인이 됩니다. <Password> 요소는 인코딩 또는 디코딩 작업의 BasicAuthentication 정책에서 필수입니다.

    아래의 샘플 BasicAuthentication 정책은 인코딩 작업에 사용되지만 <Password> 요소가 정의되어 있지 않습니다.

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

    다음 오류와 함께 배포가 실패합니다.

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

해결 방법

<Password> 요소가 인코딩 또는 디코딩 작업의 BasicAuthentication 정책 내에 정의되어 있는지 확인합니다.

위에 표시된 예시를 수정하려면 아래와 같이 정책 내에 <Password> 요소를 포함합니다.

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

오류 메시지

Edge UI 또는 Edge Management API를 통한 API 프록시 배포가 실패하고 다음 오류 메시지가 표시됩니다.

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

오류 메시지 예

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

예시 스크린샷

원인

<AssignTo> 요소가 BasicAuthentication 정책에 정의되지 않은 경우 API 프록시 배포는 실패합니다. 인코딩 및 디코딩 작업의 경우 <AssignTo> 요소는 필수입니다.

진단

  1. API 프록시에 사용되는 모든 BasicAuthentication 정책을 검토합니다. <AssignTo> 요소가 정의되지 않은 정책이 있는 경우 이는 오류의 원인이 됩니다. <AssignTo> 요소는 인코딩 및 디코딩 작업의 BasicAuthentication 정책에 정의되어야 합니다.

    아래의 샘플 BasicAuthentication 정책은 인코딩 작업에 사용되지만 <AssignTo> 요소가 정의되어 있지 않습니다.

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

    다음 오류와 함께 배포가 실패합니다.

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

해결 방법

<AssignTo> 요소가 인코딩 또는 디코딩 작업의 BasicAuthentication 정책 내에 정의되어 있는지 확인합니다.

위에 표시된 예시를 수정하려면 아래와 같이 정책 내에 <AssignTo> 요소를 포함합니다.

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

오류 메시지

Edge UI 또는 Edge Management API를 통한 API 프록시 배포가 실패하고 다음 오류 메시지가 표시됩니다.

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

오류 메시지 예

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

예시 스크린샷

원인

디코딩 작업에 사용되는 BasicAuthentication 정책에 <Source> 요소가 정의되지 않으면 API 프록시 배포는 실패합니다. BasicAuthentication 정책에서 <Operation>Decode로 지정된 경우 <Source> 요소는 필수입니다.

진단

  1. API 프록시에 사용되는 모든 BasicAuthentication 정책을 검토합니다. <Source> 요소가 정의되지 않고 <Operation> 요소가 Decode로 정의된 정책이 있는 경우 이는 오류의 원인이 됩니다. BasicAuthentication 정책에서 <Operation>Decode로 지정된 경우 <Source> 요소는 필수입니다.

    아래의 샘플 BasicAuthentication 정책은 Decode 작업에 사용되지만 <Source> 요소가 정의되어 있지 않습니다.

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

    다음 오류와 함께 배포가 실패합니다.

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

해결 방법

<Source> 요소가 Decode 작업에 사용될 때 BasicAuthentication 정책에 요소가 정의되었는지 확인합니다.

위에 표시된 예시를 수정하려면 아래와 같이 정책 내에 <Source> 요소를 포함합니다.

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