2016-08-16 6 views
3

내가 AWS 람다를 사용하여 다음과 같은 인증 서비스를 사용 스위프트의 iOS 앱 만들려고하고 가정 - DynamoDB의와 통신 할 수 https://github.com/danilop/LambdAuthAWS 람다/Cognito 인증 - 인증 역할

그것은 iOS 용 AWS 모바일 SDK를 사용하고 람다 - 여기

https://github.com/danilop/LambdAuth/blob/master/www/login.html#L69 토큰을 생성하는 클라우드 기능입니다 - 여기 http://docs.aws.amazon.com/mobile/sdkforios/developerguide/

는 람다 로그인 기능에서 반환 된 토큰을 이용하여 웹 사이트에 대한 샘플 코드, 내가 스위프트 코드가 비슷한 것 상상 ~을 위해 사용자 - https://github.com/danilop/LambdAuth/blob/master/LambdAuthLogin/index.js#L102

AWS Cognito (IDS)에서 ID 풀을 만들었으며 auth와 unauth의 두 가지 역할이 있습니다. 내 응용 프로그램은 항상 unauth 역할 (arn : aws : sts :: 123123123 : assume-role/_unauth_MOBILEHUB_123123123/CognitoIdentityCredentials) 인 것으로 보입니다. 내 사용자는 소금에 절인 암호로 다이나모 테이블에 저장됩니다.

문제의 근본 원인은 인증 된 역할로 사용자를 전환하는 서비스에서 로그인 토큰을받은 후 작성해야하는 올바른 Swift 코드를 알지 못한다는 것입니다 (auth arn 사용). AWS (dynamodb, lambda 등)에 대한 모든 서비스 호출에 대해 auth 역할을 사용하고 싶습니다. 나는 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바라고 있습니다. - 감사합니다.

+1

여기에 행운이 있습니까? 나는 같은 문제를 겪고있다. –

답변

-1

인증 된 역할은 지원되는 공용 공급자 (Facebook, Google, Twitter, Amazon With Login), OIDC 공급자, SAML 공급자 또는 Cognito User Pool 사용자 중 하나를 사용할 때만 사용됩니다.

Amazon Cognito User Pools은 사용자 등록, 인증 및 관리를위한 솔루션을 제공합니다. 거기에 람다 인증을 선호하는 이유가 있습니까? 다닐로의 책의 디자인으로 당

0

, 당신은 AWS-SDK 자바 스크립트를 사용하는 경우, 당신처럼 개체를 정의해야합니다 : 당신이 당신의 identityId 및 토큰을 받으면 당신이에 할당해야 다음

var creds = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: //hard coded value for your system// 
}) 

AWS.config.update({ 
    region: 'us-east-1', 
    credentials: creds 
}); 

var lambda = new AWS.Lambda(); 

을 다음과 같이 creds :

출력이 LambdAuthLogin 람다 함수의 반응이다
creds.params['IdentityId'] = output.identityId; 
creds.params['Logins'] = {}; 
creds.params['Logins']['cognito-identity.amazonaws.com'] = output.token; 
creds.expired = true; 

.