2012-10-01 7 views
8

次の認証ソリューションの設計方法は何ですか?クロスプラットフォームのServiceStack認証

私は、スタンドアロン(MVCと統合されていない)ServiceStack RESTサービス層を持っています。このサービスは、私のすべてのデータへのエントリポイントです。クライアントにはデータは保存されません。

私は複数のクライアント(ASP.Net MVC 4サイト、MonoTouchアプリケーション、MonoDroidアプリケーション、Silverlightアプリケーション、MonoMacアプリケーションなど)を持っています。

私はMongoDBAuthRepositoryにユーザーを格納することを含め、サービスレベルで認証(Facebook、Twitterなど)を提供したいと思いますが、クライアントにログインUIを提供することを許可します。たとえば、MVCサイトでは、リモートのServiceStack認証サービス(Facebook、Twitterなど)とMVCの認証システムを統合したいと考えています。実際の認証がサービス側で行われるように思われますが、クライアント側は認証応答を保持する必要があります。

私はウィキを読んで、SocialBootstrapを見て、フォーラムを読んだが、これが分散して動作する方法についてはまだ混乱している。

答えて

5

Twitter + FacebookのようなOAuthオプションでは、各ユーザーからの信頼できる認証を取得するために、尊重された認証プロバイダからのリダイレクトが必要なため、ブラウザで認証が行われる必要があります。一部のモバイルアプリでは、Twitter + FB Auth用のブラウザウィジェットを埋め込むことでこれを実行します。

ユーザーが同じ認証済みセッションでTwitter + FacebookとCredentialsで認証されると、ServiceStack's AuthProvidersは自動的にすべての認証情報を同じアカウントにマージします。したがって、後で1つの認証プロバイダでログインできますが、すべての3で利用可能な情報にアクセスできます。SocialBootstrapApiプロジェクトでは、この例が提供されています。

+1

ブラウザでFB/Twitterの認証(クライアント(mvc/mobile/etc)側)を行うと、その認証をServiceStackリモートサービスに渡すにはどうすればいいですか? ? –

+1

ServiceClientは、BasicAuth/DigestAuthを使用して暗黙的に割り当てることができる 'ss-pid'クッキーを指定するか、'/auth/* 'サービスを直接呼び出して明示的に割り当てる必要があります。さもなければ、実際にBaseClientでエンコードされたAuthSessionId guid – mythz

+4

をServiceClientに物理的に追加することができます。これを動作させようとしていますが、私はまだ何かが欠けていると思います。ユーザーは電話でTwitter/Facebookにログインし、ServiceStackサービスに登録したり、認証が必要なサービスにアクセスしようとします。サービスの認証プロバイダは何ですか?どのパラメータを渡すのですか?どのパスワードを設定するのですか? http://imageshack.us/a/img84/5415/servicestackoauthfromcl.png http://imageshack.us/a/img607/5415/servicestackoauthfromcl.png –

関連する問題