1.20.7.3. 권한 부여 헤더


요청에는 권한 부여 헤더에 app_idapp_key 가 포함됩니다. 끝에 출력되는 하나 이상의 값이 있는 경우 app_key 를 할당할 수 있습니다.

해결 방법은 끝에 하나 또는 두 개의 출력이 있는 경우 app_key 를 할당합니다.

권한 부여 헤더는 권한 부여 유형의 값을 지정하고 해당 값은 Base64 로 인코딩됩니다. 즉, 값을 공백 문자로 분할하고, 두 번째 출력을 가져온 다음 콜론(:)을 구분자로 사용하여 다시 분할할 수 있습니다. 예를 들어 app_id:app_key 형식을 사용하는 경우 헤더는 자격 증명에 대해 다음 예와 같습니다.

aladdin:opensesame:  Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

다음 예와 같이 소문자 헤더 필드 이름을 사용해야 합니다.

credentials:
  app_id:
    - header:
        keys:
          - authorization
        ops:
          - split:
              separator: " "
              max: 2
          - length:
              min: 2
          - drop:
              head: 1
          - base64_urlsafe
          - split:
              max: 2
  app_key:
    - header:
        keys:
          - app_key

이전 예제 사용 사례는 권한 부여의 헤더를 확인합니다.

  1. 문자열 값을 가져와서 공백으로 분할하여 자격증명( credential)과 자격 증명 자체의 두 개 이상의 값을 생성한 다음 credential -type을 삭제합니다.
  2. 그런 다음 필요한 데이터를 포함하는 두 번째 값을 디코딩하고 콜론(:) 문자를 사용하여 app_id 를 첫 번째 the app_id, 다음 app_key 가 있는 경우 작업 스택을 사용하여 분할합니다.

    1. 이 경우 app_key 가 권한 부여 헤더에 없는 경우 특정 소스를 확인합니다(예: 이 경우 app_key 키가 있는 헤더).
  3. 자격 증명에 추가 조건을 추가하려면 기본 권한 부여를 허용하십시오. 여기서 app_idaladdin 또는 admin 이거나 app_id 길이가 8자 이상입니다.
  4. app_key 는 다음 예와 같이 최소 64자 이상이어야 합니다.

    credentials:
      app_id:
        - header:
            keys:
              - authorization
            ops:
              - split:
                  separator: " "
                  max: 2
              - length:
                  min: 2
              - reverse
              - glob:
                - Basic
              - drop:
                  tail: 1
              - base64_urlsafe
              - split:
                  max: 2
              - test:
                  if:
                    length:
                      min: 2
                  then:
                    - strlen:
                        max: 63
                    - or:
                        - strlen:
                            min: 1
                        - drop:
                            tail: 1
              - assert:
                - and:
                  - reverse
                  - or:
                    - strlen:
                        min: 8
                    - glob:
                      - aladdin
                      - admin
  5. 권한 부여 헤더 값을 선택한 후 유형을 맨 위에 배치할 수 있도록 스택을 다시 실행하여 기본 자격 증명-type을 가져옵니다.
  6. glob 일치 항목을 실행합니다. 유효성을 검사하고 인증 정보가 디코딩되어 분할되면 스택 하단에 app_id 를 가져오고 잠재적으로 top에 app_key 를 얻을 수 있습니다.
  7. 테스트 실행: 스택에 두 개의 값이 있는 경우 app_key 가 인수되었음을 의미합니다.

    1. 문자열 길이가 app_idapp_key 를 포함하여 1에서 63 사이인지 확인합니다. 키 길이가 0인 경우 키를 놓은 후 키가 없는 것처럼 계속 진행합니다. app_id 만 있고 app_key 가 없는 경우 다른 분기가 누락된 경우 성공적인 테스트 및 평가가 계속됨을 나타냅니다.

마지막 작업인 assert 는 어떤 side-effects make it into the stack이 없음을 나타냅니다. 그러면 스택을 수정할 수 있습니다.

  1. 맨 위에 app_id 를 갖도록 스택을 되돌립니다.

    1. app_key 가 있는지 여부에 관계없이 스택을 종료하면 app_id 가 맨 위에 있는지 확인합니다.
  2. 을 사용하여 테스트 전반에서 스택의 콘텐츠를 보존합니다.

    다음 옵션 중 하나를 사용합니다.

    • app_id 에 최소 8개 이상의 문자열 길이가 있는지 확인합니다.
    • app_idaladdin 또는 admin 과 일치하는지 확인합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.