AWS

2016-04-08 20 views
0
ziyaretçilerin içeriği JSON belgeleri olarak temsil edilir ve localStorage saklanan oluşturmak tek sayfalık web uygulaması yazdım

ile basit, federe giriş ve kullanıcı profili Mimarisi. Artık bu ziyaretçilere, içeriğimi kendi uygulamamda yükleyebilmeleri ve paylaşabilmeleri için harici bir kimlik sağlayıcısı (Google, Twitter, Facebook, vb.) Ile giriş yapma olanağı vermek istiyorum.AWS

AWS bu proje mimarı en iyi yolu nedir? Bulut hizmetlerine yepyeni yapıyorum.

Topladım JSON belgelerini depolamak için bir S3 kovası ve ek kullanıcı profili bilgilerini (bir takma ad veya e-posta adresi gibi) saklamak için bir DynamoDB isteyeceğim, ancak kimlik doğrulama/yetkilendirme/profil özellikleri (Cognito, IAM , OpenID, OAuth ve belki de her şeyi birbirine bağlamak için Lambda betikleri) tamamen beni kaçar. (Açıkçası, okumanın üç gün rağmen ben her ayrılıkları/amacını anlamak bile emin değilim.)

bana doğru yönde işaret Herhangi bir tavsiye büyük bir yardım olacaktır.

cevap

1

Cognito Kimlik AWS kaynaklarına tanımlarlar, izinlere sahip kullanıcıların AWS Kimlik verir. Uygulamanızda, kullanıcılarınız Facebook, Google, Twitter, herhangi bir OIDC sağlayıcısı veya kendi geliştirici kimlik doğrulamanızı kullanarak ve AWS Kimlik Bilgilerini kullanarak giriş yapabilir.

Kendi geliştirici sağlayıcınızı kullanmak istediğiniz gibi görünüyor. Bunun uygulamanız kullanım durumunuza bağlıdır. Ancak, geliştirici sağlayıcınızı Developer Authenticated Identities özelliğini kullanarak Cognito ile kullanabilirsiniz: http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html

Her kullanıcı bir Cognito Identity Kimliği alır.

JSON nesneleriniz yalnızca bunların sahibi tarafından kullanılacaksa, Cognito Sync'i kullanabilirsiniz; böylece kullanıcı, uygulamada oturum açtığı sırada aygıtın ne olduğuna bakmaksızın bu nesneleri alabilir. JSON nesneleri kullanıcıları arasında paylaşılabilir gerekirse belirtildiği gibi

, sen muhtemelen S3 kullanmaktadır, başka bir çözüm geliştirmek gerekecektir. Yardım oluşturma izinleri için

, burada bakın: http://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html

+0

Teşekkür, Mark. Bu yardımcı olur. Birkaç ayrıntıda hala biraz belirsizim, bu yüzden izinli olduğum zaman bana bildirin: Özellikle, kullanıcıların kimliğini doğrulamak istemiyorum, aksine bir dış sağlayıcıyla giriş yapmak istiyorum. Daha sonra bir kez doğrulandıktan sonra, uygulama ile ek profil bilgilerini (takma ad gibi) depolamasına izin verin. JSON nesneleri (herkes değil, sadece diğer kimliği doğrulanmış kullanıcıların kadar) halka paylaşılabilir olması gerekirdi, ama kullanıcılara kendi belgelerini (ancak diğer kullanıcıların olanlar) değiştirin veya değiştirmek için yetki vermek istiyoruz. Cognito/S3 bunu yapabilir mi? – Mark

+0

Ah, belirttiğim gibi harici sağlayıcılarla çalışabilir ve karar verdiğiniz bilgileri saklayabilirsiniz. JSON'nuzun * uygulamanızı kullanan herkesin okuyabilmesini * istiyorsanız, ancak yalnızca içerik oluşturucu tarafından yazılabilir olmasını istiyorsanız, bu politikalarınız aracılığıyla yapılabilir. Yalnızca bir kullanıcı alt kümesiyle paylaşmak isterseniz, kullanıcının S3 Nesnesine erişimi olup olmadığını belirlemek için S3'teki ve müşterinizdeki JSON'unuz arasında bir arka uça ihtiyacınız olacaktır. Bunun için iyi bir çözüm API Gateway'dir. –

+0

düzeltme: muhtemelen bir önceki yoruma yaptığım son senaryo için istemci ile S3 arasında bir arka uça ihtiyacınız olacak. Yine, kullanım durumunuza göre değişir. –