이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 1|회답: 0

OIDC에서 PKCE의 code_challenge과 code_vertifier 이해하기

[링크 복사]
게시됨19초 전 | | | |
OAuth 2.0은 여러 인증 모드를 제공하며, 그중 권한 부여 부여(Authorization Code Grant)가 가장 널리 사용되고 안전합니다. code_challenge 이 모드 내에서 보안 강화 기능으로, 주로 PKCE(코드 교환 증명 키) 메커니즘에 사용됩니다.

PKCE란 무엇인가요?

PKCE(Proof Key for Code Exchange)는 특히 JavaScript 애플리케이션이나 브라우저에서 실행되는 모바일 앱과 같은 공개 클라이언트에서 사용될 때 OAuth 2.0 인증 코드 패턴의 보안을 강화하기 위해 설계된 확장 프로그램입니다. PKCE는 인증 요청에 추가 인증 단계를 추가하여 인증 코드가 가로채거나 오용되는 것을 방지합니다.

code_challenge 역할

code_challenge는 권한 부여 요청 단계에서 생성되고 전송되는 PKCE 메커니즘의 일부입니다. 이는 비밀 값(code_verifier이라 불림)을 기반으로 하며, S256과 같은 해싱 알고리즘으로 변환됩니다. code_challenge의 목적은 code_verifier를 직접 노출하지 않고 이후 토큰 요청에 대한 검증 기반을 제공하는 것입니다.

code_challenge와 code_verifier의 생성 및 사용

code_verifier세대:
code_verifier 는 고엔트로피에 무작위로 생성된 문자열이다,문자 길이(43에서 128 사이). 기본 값은 43입니다。

code_challenge세대:
code_verifier를 사용하면 해싱 알고리즘(예: S256)을 통해 code_challenge을 생성합니다. S256의 경우 code_challenge는 code_verifier SHA-256 해시 값의 Base64 URL 인코딩이지만, 인코딩에서 = 패딩 문자를 제거해야 하며, 출력 길이는 43자여야 합니다(Base64 URL 인코딩 후 4자 하나가 3바이트를 나타내지만, 마지막 문자 블록이 4자 미만일 수 있어 = 문자를 제거한 후 길이가 약간 달라질 수 있기 때문입니다).

승인 요청에서 code_challenge 활용하기:
승인 요청을 시작할 때, code_challenge 요청 매개변수 중 하나로 권한 부여 서버에 전송됩니다.

토큰 요청에서 code_verifier 사용:
인증 서버가 인증 코드를 반환하면, 클라이언트는 이 코드와 이전에 생성된 code_verifier을 사용해 토큰 엔드포인트에 대한 접근을 요청합니다. 인증 서버는 code_challenge와 code_verifier가 일치하는지 확인하여 요청이 원래 클라이언트에 의해 시작되었는지 확인합니다.

PKCE 생성

온라인 PKCE 생성 도구:하이퍼링크 로그인이 보입니다.

C# 코드는 다음과 같이 생성됩니다:
아래에 나와 있습니다:



참조:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.




이전의:.NET/C# JWT 토큰 서명의 유효성을 검증하는 두 가지 방법
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com