

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 인증 흐름 구현
<a name="authentication-implement"></a>

인증용 AWS SDK를 사용하여 [관리형 로그인](authentication-flows-selection-managedlogin.md)을 구현하든 사용자 [지정 구축 애플리케이션 프런트엔드](authentication-flows-selection-sdk.md)를 구현하든 관계없이 구현하려는 인증 유형에 맞게 앱 클라이언트를 구성해야 합니다. 다음 정보는 [앱 클라이언트](user-pool-settings-client-apps.md) 및 애플리케이션의 인증 흐름 설정을 설명합니다.

------
#### [ App client supported flows ]

Amazon Cognito 콘솔 또는 AWS SDK의 API를 사용하여 앱 클라이언트에 지원되는 흐름을 구성할 수 있습니다. 이러한 흐름을 지원하도록 앱 클라이언트를 구성한 후 애플리케이션에 배포할 수 있습니다.

다음 절차에서는 Amazon Cognito 콘솔을 사용하여 앱 클라이언트에 사용할 수 있는 인증 흐름을 구성합니다.

**인증 흐름에 맞게 앱 클라이언트를 구성하는 방법(콘솔)**

1. 에 로그인 AWS 하고 [Amazon Cognito 사용자 풀 콘솔](https://console.aws.amazon.com/cognito/v2/idp)로 이동합니다. 사용자 풀을 선택하거나 새로운 사용자 풀을 생성합니다.

1. 사용자 풀 구성에서 **앱 클라이언트** 메뉴를 선택합니다. 앱 클라이언트를 선택하거나 새 앱 클라이언트를 생성합니다.

1. **앱 클라이언트 정보**에서 **편집**을 선택합니다.

1. **앱 클라이언트 흐름**에서 지원하려는 인증 흐름을 선택합니다.

**인증 흐름에 대한 앱 클라이언트를 구성하는 방법(API/SDK)**  
Amazon Cognito API를 사용하여 앱 클라이언트에 사용할 수 있는 인증 흐름을 구성하려면 [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ExplicitAuthFlows) 또는 [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html#CognitoUserPools-UpdateUserPoolClient-request-ExplicitAuthFlows) 요청에서 `ExplicitAuthFlows` 값을 설정합니다. 다음은 클라이언트에 보안 원격 암호(SRP) 및 선택 기반 인증을 프로비저닝하는 예입니다.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH",
   "ALLOW_USER_SRP_AUTH"
]
```

앱 클라이언트 지원 흐름을 구성할 때 다음 옵션과 API 값을 지정할 수 있습니다.


**앱 클라이언트 흐름 지원**  

| 인증 흐름 | 호환성 | 콘솔 | API  | 
| --- | --- | --- | --- | 
| [선택 기반 인증](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) | 서버 측, 클라이언트 측 | 로그인 시 인증 유형 선택 | ALLOW\_USER\_AUTH | 
| [영구 암호로 로그인](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password) | 클라이언트 측 | 사용자 이름과 암호로 로그인 | ALLOW\_USER\_PASSWORD\_AUTH | 
| [영구 암호 및 보안 페이로드로 로그인](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp) | 서버 측, 클라이언트 측 | 보안 원격 암호(SRP)로 로그인 | ALLOW\_USER\_SRP\_AUTH | 
| [토큰 새로 고침](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh) | 서버 측, 클라이언트 측 | 기존의 인증된 세션에서 새 사용자 토큰 가져오기 | ALLOW\_REFRESH\_TOKEN\_AUTH | 
| [서버 측 인증](authentication-flows-public-server-side.md#amazon-cognito-user-pools-server-side-authentication-flow) | 서버 측 | 서버 측 관리 자격 증명으로 로그인 | ALLOW\_ADMIN\_USER\_PASSWORD\_AUTH | 
| [사용자 지정 인증](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom) | 서버 측과 클라이언트 측 맞춤형 애플리케이션. 관리형 로그인과 호환되지 않습니다. | Lambda 트리거의 사용자 지정 인증 흐름으로 로그인 | ALLOW\_CUSTOM\_AUTH | 

------
#### [ Implement flows in your application ]

관리형 로그인을 사용하면 구성된 인증 옵션을 로그인 페이지에서 자동으로 사용할 수 있습니다. 사용자 지정 빌드 애플리케이션에서 초기 흐름 선언으로 인증을 시작합니다.
+ 사용자의 흐름 옵션 목록에서 선택하려면 `USER_AUTH` 흐름으로 [선택 기반 인증](authentication-flows-selection-sdk.md#authentication-flows-selection-choice)을 선언합니다. 이 흐름에는 [패스키](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) 및 [암호 없는](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) 인증과 같이 클라이언트 기반 인증 흐름에서 사용할 수 없는 사용 가능한 인증 방법이 있습니다.
+ 인증 흐름을 미리 선택하려면 앱 클라이언트에서 사용할 수 있는 다른 흐름으로 [클라이언트 기반 인증](authentication-flows-selection-sdk.md#authentication-flows-selection-client)을 선언합니다.

사용자를 로그인할 때 [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow) 또는 [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow) 요청 본문에 `AuthFlow` 파라미터가 포함되어야 합니다.

선택 기반 인증:

```
"AuthFlow": "USER_AUTH"
```

SRP를 사용한 클라이언트 기반 인증:

```
"AuthFlow": "USER_SRP_AUTH"
```

------