1

ユーザーの認証に oauth2 を使用する API を開発しています。要件は、3 つの異なる Web アプリケーション用のシングル サインオン システムを開発することです。このシナリオを考えてみましょう:

  • ユーザーがアプリケーションの 1 つ (application1 としましょう) にログインします。
  • application1 は、トークンとリフレッシュ トークンを受け取ります。リフレッシュ トークンはセキュア セッションに保存されます。
  • ユーザーは、application2 などの 2 番目のアプリケーションに移動します。ただし、更新トークンは application1 用に作成されているため、application2 には使用できません。

ユーザーがログインする必要なく、2 番目のアプリケーションのトークンを生成する最良の方法は何ですか?

どんな提案も素晴らしいでしょう。私は正しいアプローチを取っていますか?symfony2 (FriendsOfSymfony/FOSOAuthServerBundle) を使用しています

4

1 に答える 1

0

認可サーバーが SSO セッションを保持している場合、ユーザーは application2 のトークンが発行されたときに再度ログインする必要はありません。もちろん、ユーザーは application2 が要求しているスコープに同意する必要があります。これは、application1 とは関係なく、独自のトークンとアクセス許可を必要とする別のアプリケーション (または OAuth 2.0 用語では「クライアント」) であるためです。

2 つのアプリケーションが同じエンティティによって制御されているため、および/またはすべて同じであるため、2 つのアプリケーションを単一のエンティティとして扱いたい場合は、この (単一の) クライアントに対して同じclient_idandを使用し、 client_secret2 を登録することができます。 redirect_uri.

于 2015-01-07T16:08:11.057 に答える