권한 부여 유형
Verify그랜트 유형 은 클라이언트가 ID 토큰과 액세스 토큰을 가져오기 위해 사용하는 인증 메커니즘을 나타냅니다. 인증 코드, 암시적 인증, 인증 코드 및 암시적 인증, 디바이스 플로우, 리소스 소유자 자격 증명, JWT, 컨텍스트 기반 인증, 리프레시 토큰, 토큰 교환 중에서 선택할 수 있습니다.
| 특성 | 권한 코드 | 내재적 | 권한 코드 및 내재적 |
|---|---|---|---|
| 설명 | 권한 부여 엔드포인트 토큰 엔드포인트 가장 일반적으로 사용되는 플로우입니다. |
권한 부여 엔드포인트 권한 코드 또는 토큰 엔드포인트 |
클라이언트 프론트 엔드 및 백엔드가 서로에게 독립적으로 토큰을 수신할 수 있습니다. 클라이언트가 권한 부여 엔드포인트 |
| 유스 케이스 | 클라이언트 시크릿을 안전하게 유지보수할 수 있는 클라이언트(예: 웹 애플리케이션 및 기본 모바일 애플리케이션)에 사용하십시오. 이는 사용자와 클라이언트를 인증하기 위한 것입니다. |
클라이언트 시크릿을 보관할 수 없는 클라이언트(예: 브라우저 또는 Javascript)에 사용하십시오. 사용자를 인증하는 데 사용됩니다. |
다음과 같은 클라이언트에 사용하십시오.
|
| 응답 유형 값 |
|
|
|
| 모든 토큰이 권한 부여 엔드포인트에서 리턴됩니다. | 아니오 | 예 | 아니오 |
| 모든 토큰이 토큰 엔드포인트에서 리턴됩니다. | 예 | 아니오 | 아니오 |
| 토큰은 사용자 에이전트에 공개되지 않습니다. | 예 | 아니오 | 아니오 |
| 클라이언트 애플리케이션을 인증할 수 있습니다. | 예 | 아니오 | 예 |
| 새로 고치기 토큰을 생성합니다. | 예 | 아니오 | 예 |
| 한 번의 왕복으로 통신 | 아니오 | 예 | 아니오 |
| 대부분의 서버 간 통신 | 예 | 아니오 | 다양함 |
| 로그인 힌트(login_hint) | 예 이 값은 문자열로 된 사용자 이름(예:
john@ibm.com) 또는 JSON일 수 있습니다. 예를 들어, 다음과 같습니다.. JSON 값을 사용할 때 범위는 ID 소스 범위를 나타냅니다. |
예 이 값은 문자열로 된 사용자 이름(예:
john@ibm.com) 또는 JSON일 수 있습니다. 예를 들어, 다음과 같습니다.. JSON 값을 사용할 때 범위는 ID 소스 범위를 나타냅니다. |
예 이 값은 문자열로 된 사용자 이름(예:
john@ibm.com) 또는 JSON일 수 있습니다. 예를 들어, 다음과 같습니다.. JSON 값을 사용할 때 범위는 ID 소스 범위를 나타냅니다. |
| 최대 인증 수명(max_age) | 이 값은 마지막으로 사용자가 적극적으로 인증된 후 허용되는 경과 시간(초)입니다. 이 속성은 Cloud Directory 로그인 세션에만 적용됩니다. | 이 값은 마지막으로 사용자가 적극적으로 인증된 후 허용되는 경과 시간(초)입니다. 이 속성은 Cloud Directory 로그인 세션에만 적용됩니다. | 이 값은 마지막으로 사용자가 적극적으로 인증된 후 허용되는 경과 시간(초)입니다. 이 속성은 Cloud Directory 로그인 세션에만 적용됩니다. |
| 워크플로우 |
|
|
|
| 특성 | 디바이스 플로우 | 자원 소유자 비밀번호 인증 정보 | JWT |
|---|---|---|---|
| 설명 | 이는 클라이언트가 URL에 전송된 QR 코드 또는 사용자 코드를 사용하여 권한 부여될 수 있도록 합니다. | 클라이언트 및 사용자 인증은 클라이언트 ID, 클라이언트 시크릿, 사용자 이름 및 비밀번호를 사용하여 토큰 엔드포인트 /token에서 액세스 토큰 및 ID 토큰을 검색할 때 필요합니다. 사용자 이름 및 비밀번호는 Cloud Directory에 대해 유효성을 검증합니다. | RFC7523에서 정의됩니다. 클라이언트가 서명되거나 암호화된 JWT 또는 권한 부여와 교환하기 위해 서명되고 암호화된 JWT를 표시할 수 있습니다. JWT는 권한 부여 서버에 의해 유효성 검증되며 JWT 내의 ID는 권한 부여의 주제로 사용됩니다. |
| 유스 케이스 | 다음과 같은 클라이언트에 사용하십시오.
|
이 권한 부여 유형은 사용으로 설정될 수 있지만 기타 플로우가 사용되지 않는 경우에만 사용하십시오. 이는
다음에 사용될 수 있습니다.
|
인증 서버(Verify)와 JWT를 발급하는 엔티티 사이에는 확립된 신뢰 관계가 존재합니다. 클라이언트는 엔티티를 발행하는 JWT로부터 JWT를 획득하고 이를 권한 부여와 교환하기 위해 권한 부여 서버에 제공합니다. JWT 발행 엔티티에는 자체 요구사항이 있을 수 있으며, 이는 JWT가 발행되기 전에 충족되어야 합니다(예: 대체 인증 및 권한 검사). |
| 응답 유형 값 | 해당사항 없음 | 해당사항 없음 | 해당사항 없음 |
| 모든 토큰이 권한 부여 엔드포인트에서 리턴됩니다. | 아니오 | 아니오 | 아니오 |
| 모든 토큰이 토큰 엔드포인트에서 리턴됩니다. | 예 | 예 | 예 |
| 토큰은 사용자 에이전트에 공개되지 않습니다. | 예 | 예 | 예 |
| 클라이언트 애플리케이션을 인증할 수 있습니다. | 예 | 예 | 예 |
| 새로 고치기 토큰을 생성합니다. | 예 | 예 | 예 |
| 한 번의 왕복으로 통신 | |||
| 대부분의 서버 간 통신 | |||
| 로그인 힌트(login_hint) | 아니오 | 아니오 | 아니오 |
| 최대 인증 수명(max_age) | 해당사항 없음 | ||
| 워크플로우 |
|
|
|
| 특성 | 컨텍스트 기반 권한 부여 | 토큰 새로 고치기 | 토큰 교환 |
|---|---|---|---|
| 설명 | 추가 인증 및 권한 부여 검사가 수행되는 API 기반 플로우입니다. 권한 부여가 클라이언트에 발행되기 전에 다단계 인증이 필요할 수 있습니다. | 클라이언트 ID, 클라이언트 시크릿 및 리프레시 토큰을 사용하여 토큰 엔드포인트 /token에서 새로운 액세스 토큰, ID 토큰 및 리프레시 토큰 세트를 가져오려면 클라이언트 및 사용자 인증이 필요합니다. 리프레시 토큰은 동일한 클라이언트 ID에 속해야 합니다. 이 흐름이 진행되는 동안 토큰과 연결된 속성 값은 갱신되지 않습니다. | RFC8693 에 정의되어 있습니다. 클라이언트가 토큰을 제시하여 다른 토큰으로 교환할 수 있도록 합니다. |
| 유스 케이스 |
|
이 그랜트 유형을 사용하여 유효 기간이 갱신된 새로운 액세스 토큰 세트를 획득하세요. 이를 통해 액세스 토큰의 유효 기간을 짧게 유지할 수 있지만, 사용자가 새로운 액세스 토큰을 얻기 위해 다시 로그인할 필요는 없습니다. |
|
| 응답 유형 값 | 해당사항 없음 | 해당사항 없음 | 해당사항 없음 |
| 모든 토큰이 권한 부여 엔드포인트에서 리턴됩니다. | 아니오 | 아니오 | 아니오 |
| 모든 토큰이 토큰 엔드포인트에서 리턴됩니다. | 예 | 예 | 예 |
| 토큰은 사용자 에이전트에 공개되지 않습니다. | 예 | 예 | 예 |
| 클라이언트 애플리케이션을 인증할 수 있습니다. | 예 | 예 | 예 |
| 새로 고치기 토큰을 생성합니다. | 예 | 예 | 예 |
| 한 번의 왕복으로 통신 | 예 | ||
| 대부분의 서버 간 통신 | 예 | ||
| 로그인 힌트(login_hint) | 아니오 | 아니오 | 아니오 |
| 최대 인증 수명(max_age) | 해당사항 없음 | 아니오 | |
| 워크플로우 |
참고:
|
|
|