-1

私のチームと私は現在、かなり大きなプロジェクトに取り組んでいます。私たちはオンライン ゲームに取り組んでおり、(当面は) 次の 2 つの方法でアクセスできます。 JS クライアント側)。-iPhone アプリケーション経由 (UI はアプリケーション自体によって管理されます)。

2 つの異なるアプリケーション間でコア ロジックは同じままであるため、(私が間違っている可能性があります) 最善の解決策は、必要なすべての機能を実行できる Web サービスを (可能であれば RESTful や Rest などの標準を使用して) 作成することであると考えています。オペレーション。

このロジックに従って、ユーザーの認証と ID 管理という問題に遭遇しました。これは、特定の操作を実行するためにアプリケーション ユーザーを認証する必要があるため、問題を引き起こします。

私は WS-security を調べましたが、これには明らかにパスワードを暗号化せずにサーバーに保存する必要があり、これは受け入れられません! 次に、Oauth を調べましたが、一見したところ、これは設定に手間がかかり、私のニーズには特に適していないように見えました (アプリケーションを受け入れなければならない方法は、私のアプリケーションであり、私のアプリケーションのみであるため、私は満足していません)。外部アプリケーションではなく、Web サービスを使用します)。私は自分がやりたいことを行うための他の多くの方法について読んだり聞いたりしましたが、正直なところ、少し混乱していて、どの情報が信頼でき、どの情報がそうでないのかわかりません.

バックエンドに symfony2 を使用し、クライアント側の JavaScript に jquery を使用していることに注意してください。さらに、私が読んだり聞いたりしたすべてのことで本当に混乱しているので、詳細で段階的な回答をお願いします.

お時間をいただきありがとうございます。非常に緊急であるため、誰かが私を助けてくれることを願っています。

こんばんは

4

1 に答える 1

0

これがあなたの要求に答えるかどうかは完全にはわかりませんが、UIは常にクライアント側で処理されるため、ステートレスHTTP認証を使用できると思います。

これは次のファイアウォールですsecurity.yml

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

そして、基本的には、サーバーでは通常のユーザープロバイダー、エンコーダーなどを使用して最大限のセキュリティを実現し、クライアントでは、たとえばjQueryでHTTP認証ヘッダーを送信します。

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

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

HTTP認証の設定方法の詳細については、 Symfony2セキュリティマニュアルを確認することもできます。また、ACLでHTTPSアクセスを強制して、資格情報を含む要求が(requires_channel: httpsACL定義で)保護されるようにしてください。

于 2012-03-10T11:33:35.787 に答える