1.20.7.3. 권한 부여 헤더
요청에는 권한 부여
헤더에 app_id
및 app_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
이전 예제 사용 사례는 권한 부여
의 헤더를 확인합니다.
-
문자열 값을 사용하고 공백으로 분할하여
자격
증명 유형과 자격 증명 자체의 값이 두 개 이상 생성되는지 확인한 다음자격 증명
-type을 삭제합니다.
그런 다음 필요한 데이터를 포함하는 두 번째 값을 디코딩하고 콜론(:) 문자를 사용하여 먼저
app_id, 존재하는 경우
를 포함한 작업 스택을 갖도록 하여 분할합니다.app_
key-
app_key
가 권한 부여 헤더에 없는 경우 특정 소스를 확인합니다(예: 이 경우 키가app_key
인 헤더).
-
-
자격
증명에 조건을 추가하려면기본
권한을 허용합니다. 여기서app_id
는 ALaddin또는
admin
이거나 모든app_id
길이가 8자 이상인 경우입니다. 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
-
권한 부여
헤더 값을 선택하면 유형을 위에 배치하도록 스택을 역순으로 하여기본
자격 증명
-type이 표시됩니다. -
glob 일치를 실행합니다. 유효성을 검사하고 자격 증명을 디코딩하고 분할하면 스택 하단에
app_id
가 표시되고 상단에 있는app_key
가 표시됩니다. 테스트 실행:
스택에 두 개의 값이 있는 경우, 즉app_key
를 획득했습니다.-
app_id 및
를 포함하여 문자열 길이가 1에서 63 사이인지 확인합니다. 키의 길이가 0이면 삭제한 후 키가 없는 것처럼 계속합니다.app_
keyapp_id만 있고
가 없는 경우 다른 분기가 누락되면 성공적인 테스트 및 평가가 계속됨을 나타냅니다.app_
key
-
마지막 작업 assert
는 부작용이 스택에 발생하지 않음을 나타냅니다. 그런 다음 스택을 수정할 수 있습니다.
스택을 역순으로 표시하여
app_id
를 맨 위에 둡니다.-
app_key
가 있는지 여부에 관계없이 스택을 되돌리면app_id
가 맨 위에 있는지 확인합니다.
-
및
를 사용하여 테스트 중에 스택 내용을 보존합니다.그런 다음 다음과 같은 가능성 중 하나를 사용하십시오.
-
app_id
의 문자열 길이가 8 이상인지 확인합니다. -
app_id
가 ALaddin또는
admin
과 일치하는지 확인합니다.
-