기술
권한 부여와 인증 간의 차이점에 대해 혼란스러우십니까? 흔히 발생하는 사안입니다. 다음 정보를 확인하여 IBM Cloud® App ID에 대해 작업할 때 사용하는 특정 용어, 프로세스 및 기술에 관해 알아보십시오.
OAuth 2
OAuth 2.0 앱 인증을 제공하는 데 사용되는 개방형 표준 프로토콜입니다.
OIDC(Open ID Connect)
OIDC는 OAuth 2와 함께 작동하는 인증 계층입니다. OIDC 및 App ID을(를) 함께 사용하는 경우 애플리케이션 인증 정보는 OAuth 엔드포인트를 구성하는 데 도움이 됩니다. SDK를 사용하는 경우 엔드포인트 URL이 자동으로 빌드됩니다. 그러나 서비스 인증 정보를 사용하여 자체적으로 URL을 빌드할 수도 있습니다. URL의 형식은 App ID 서비스 엔드포인트 + "/oauth/v4" + /tenantID입니다.
예:
{
"clientId": "7eba72ef-b913-47b0-b3b6-54358bb69035",
"tenantId": "8f5aa500-357e-443a-aab6-bf878f852b5a",
"secret": "OWEzZGM4M2UtZjhlYS00MDI2LTkwNGItNDJmYzViMmU2YzIz",
"name": "testing",
"oAuthServerUrl": "https://us-south.appid.cloud.ibm.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a",
"profilesUrl": "https://us-south.appid.cloud.ibm.com",
"discoveryEndpoint": "https://us-south.appid.ibm.cloud.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a/.well-known/openid-configuration"
}
이 예제를 사용하는 경우 URL은 https://us-south.appid.cloud.ibm.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a입니다. 이제 요청을 하려는 대상 엔드포인트를 추가할 수 있습니다. 다음 표에서 몇 가지 엔드포인트 예제를 참조하십시오.
| 엔드포인트 | 형식 |
|---|---|
| 권한 | <oauthServerUrl>/authorization |
| 토큰 | <oauthServerUrl>/token |
| 사용자 정보 | <oauthServerUrl>/userinfo |
| JWKS | <oauthServerUrl>/publickeys |
SDK를 사용하는 경우 엔드포인트 URL이 자동으로 빌드됩니다.
토큰
이 서비스는 서로 다른 세 가지 유형의 토큰을 사용합니다. 토큰은 App ID 대시보드의 ID 제공자 > 관리에서 설정됩니다. 토큰 및 App ID에서 해당 토큰을 사용하는 방법에 대한 자세한 정보는 토큰 관리를 참조하십시오.
-
액세스 토큰: 권한을 나타내며 이 토큰을 사용하여 보호된 백엔드 리소스와 통신할 수 있습니다. 리소스는 App ID에서 설정하는 권한 필터로 보호합니다.
-
ID 토큰: 인증을 나타내며 사용자에 대한 정보를 포함합니다.
-
새로 고치기 토큰: 사용자를 재인증하지 않고 새 액세스 토큰을 얻는 데 사용할 수 있습니다. 새로 고치기 토큰을 사용하면 애플리케이션에서 정보를 기억하게 할 수 있으므로, 계속 사인인한 상태로 남아 있을 수 있습니다.
권한 헤더
App ID 는 무기명 토큰 사양을 준수하며 HTTP 권한 부여 헤더로 전송되는 액세스 토큰과 ID 토큰의 조합을 사용합니다. 권한 헤더에는 세 개의 서로 다른 파트가 공백으로 구분되어 있습니다. 토큰은 base64로 인코딩되어 있습니다. ID 토큰은 선택사항입니다.
예:
Authorization=Bearer <accessToken> [<idToken>]
API 전략
API 전략은 요청에 올바른 액세스 토큰이 있는 권한 헤더가 포함될 것으로 예상합니다. 요청에도 ID 토큰이 포함될 수 있지만 필수는 아닙니다. 토큰이 올바르지 않거나 만료된 경우 API 전략에서 다음 HTTP 헤더로 구성된 HTTP 401 오류를 리턴합니다.
Www-Authenticate=Bearer scope="<scope>" error="<error>"
요청이 올바른 토큰을 리턴하는 경우, 제어가 다음 미들웨어에 전달되며 appIdAuthorizationContext 특성이 요청 오브젝트에 삽입됩니다. 이 특성에는 원래 액세스 및 ID 토큰, 일반 JSON 오브젝트로 디코딩된 페이로드 정보가 포함됩니다.
웹 앱 전략
웹 앱 전략에서 인증된 절차를 통해 보호된 리소스에 액세스하려는 시도를 발견하면 사용자의 브라우저 경로를 App ID에서 제공할 수 있는 인증 페이지로 자동 재지정합니다. 인증에 성공하면 사용자가 웹 앱의 콜백 URL로 리턴됩니다. 웹 앱 전략에서 액세스 및 ID 토큰을 확보한 후 WebAppStrategy.AUTH_CONTEXT의 HTTP 세션에 저장합니다. 앱 데이터베이스에서 액세스 및 ID 토큰을 저장할
것인지 여부는 사용자가 결정합니다.
경로 재지정 URI
App ID는 앱과 상호작용한 후 승인된 완전한 URI 목록을 사용하여 사용자를 경로 재지정합니다. 예를 들어 사용자가 정상적으로 사인인되는 경우 App ID는 해당 사용자를 앱의 홈 페이지 또는 지정된 다른 페이지로 경로 재지정합니다. URI의 형식은 애플리케이션에 따라 변경될 수 있습니다. 자세한 정보는 경로 재지정 URI 추가를 참조하십시오.
JWKS(JSON Web Key Set)
JWKS는 암호 키 세트를 나타냅니다. App ID은(는) 서비스가 생성한 토큰의 정확성을 확인하기 위해 JWKS를 사용합니다. 키 ID를 사용하여 서명을 확인하면 신뢰할 수 있는 소스인 App ID이(가) 토큰을 발행했는지 확인할 수 있습니다. 또한 토큰 내의 정보가 변경되지 않았는지 확인할 수 있습니다.