質問

私のチームと私は現在かなり大きなプロジェクトに取り組んでいます。私たちはオンラインゲームに取り組んでいます。これは、2つの方法で(現時点で)アクセス可能な(現時点で)。 -via Webブラウザ、アプリケーションフルJavaScript(クライアント側)、フルAJAX(基本的には、UIがJSクライアント側で管理されることを意味します)。 -via iPhoneアプリケーション(UIはアプリケーション自体によって管理されます)。

2つの異なるアプリケーションの間に、コアロジックは同じままです。必要なすべての操作を可能にします。

このロジックに続いて、私は問題に遭遇しました:ユーザーの認証とID管理。アプリケーションのユーザーが特定の操作をプラフォーマーするために認証される必要があるため、これは問題を提起します。

私はWS-Securityを検索しましたが、これは明らかにサーバー上で暗号化されていないパスワードを保存する必要があります。 私はそれからOAUTHに見えましたが、最初は一見しました。外部アプリケーションではなく、Webサービスを使用してください。 私は私が欲しいものをするための他の多くの方法について読んで聞いたが、正直に言うことで、私は少し混乱していて、私は信頼できるものが何であるかわからない。

私は、クライアント側のJavaScriptのバックエンドとjQueryにsymfony2を使用していることに注意したいと思います。 さらに、私は本当に私が読んで聞いたことのすべてと混乱しているので、私は本当に私は本当に混乱しています。

あなたの時間をありがとう、そして私は誰かがそれがかなり緊急のように私を助けることができることを願っています。

こんばんは

役に立ちましたか?

解決

これがあなたの要求に答えるのではなく、UIは常にクライアント側で扱われるため、ステートレスHTTP認証を使用できると思います:

security.ymlのファイアウォール:

security:
    firewalls:
        api:
            pattern: ^/api/ # or whatever path you want
            http_basic: ~
            stateless: true
.

基本的には、サーバー上の通常のユーザープロバイダ、エンコーダ、および最大セキュリティを達成するためのもので、クライアント上で、jQuery:

$.ajax("...", {
    username: "Foo",
    password: "bar"
});
.

認証はステートレスであるため(Cookieが作成されたことがなくても)、ヘッダーはすべてのリクエストで送信されなければなりませんが、アプリケーションはほぼ完全にクライアント側であるため、これは問題ではありません。 。

Symfony2 Security Manual の詳細については、 HTTP認証を設定します。また、ACLでHTTPSアクセスを強制してください。そのため、認証情報を含む要求が保護されます(ACL定義のrequires_channel: https)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top