2015-03-29 22 views
5

Amazon Web Hizmetlerini uygulamanıza entegre etmeye çalışıyorum ama açıkçası büyük bir sorun oldu ve bu son derece can sıkıcı bir durum.Amazon Cognito iOS

Ben iOS için Amazon SDK'yı (V2.1.0) kullanıyorum ve bu başarmak için çalışıyorum budur:

Benim app
  1. , benim kullanıcılar uygulamam için kaydolabilirsiniz bir kayıt sayfasını var Facebook kullanarak ya da bir hesap oluşturarak
  2. Kullanıcı bir hesap oluşturmak istiyorsa, Amazon DynamoDB'ye (iOS uygulaması aracılığıyla) e-posta ve şifreyi kaydedeceğim güvenli bir şekilde erişmek için Amazon Cognito kullanmayı planlıyorum.

Ben Amazon Cognito benim ViewController aşağıdaki kodu ile çalışma almak için çalışıyorum ama değişken cognitoId için ben nil olsun.

, aşağıdaki soruları yukarıda izah her şeyi dayanarak
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 
                           identityPoolId:@"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"]; 
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 
                    credentialsProvider:credentialsProvider]; 
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration; 

NSString *cognitoId = credentialsProvider.identityId; //NULL 

adres:

  1. Amazon Contigo'dan benim kullanım durumda bu senaryoda doğru mu Kodum altındadır?
  2. Yukarıdaki kod neden çalışmıyor?
  3. Sorunun Kimlik Havuzunda yapılandırılan iam rolleriyle ilgili olabileceğini düşünüyorum. Güvenlik açısından hangi rollerin verileceğinden emin değilim. Kullanıcılar kaydolduktan sonra, uygulamanın herhangi bir güvenlik açığını açığa çıkarmadan DynamoDB'ye yazmak için izin alması gerekir. Bu konuda herhangi bir fikir verebilir mi?

Yardımcı olabilecek herkese minnettarım. Son birkaç gündür çalışmayı denemeye karar verdim.

Teşekkürler!

+0

Sizinle Cognito deneyiminiz hakkında konuşmak isterim. Lütfen bana e-posta gönderin, e-postam, stackoverflow profil sayfamda. –

cevap

1

Cognito kimlik kimliği varsayılan olarak ayarlanmamış. GetIdentityId için arama mı yapıyorsunuz yoksa sağlayıcı ile yenileniyor musunuz? Eğer değilse, bunu denerim ve bir sonuç elde edip edemeyeceğinizi görürdüm.

Diğer sorularınız için, Cognito, facebook, google ve amazon gibi geliştiricilerin kimliği doğrulanmış kimliklerini 'kamu sağlayıcıları' destekler. Facebook ile önerilen durum için, orada kolayca Cognito kullanabilirsiniz. Cognito rolleri ve politikaları hakkında bir blog yayını here kullanılabilir.

Geliştiricinin kimliği doğrulanmış kimlikler, ikinci kullanım durumunuzu uygulamak için geçerli (ve daha güvenli) bir yol olabilir. İş akışı bir arka uç sunucusuna sahip olmanızı gerektirir, ancak yalnızca dinamo db tablosuna o sunucuya erişim verebilirsiniz. Kullanıcılar giriş yaparlar, uygulama bu verileri sunucunuza gönderir, bu sunucu kimlik bilgilerini doğrular ve yanıtlar ve kullanıcı diğer AWS kaynaklarınıza erişebilir. Bu bağlamdaki rolleri ve politikaları açıklayan bir blog yazısı here ve biri hakkında daha ayrıntılı bilgi veren ve bir uçtan uca örnek sunan here mevcuttur.

İlgili konular