2017-11-23 6 views
1

私はoauth2がautheorizationであり、OpenID Connectが認証目的である理由を理解していません。認証にOAuth2はありませんか?

成功し リソースの所有者を認証し、認証を取得した後、クライアントへのアクセストークンを発行するサーバー 認証サーバ

OAuth2 RFCから。

他の手で、Authorization Code Flow RFC代理人または依拠当事者は認証ユーザーになるために何らかの認証ページにリダイレクトされますか?

さらに、Oauth2に認証メカニズムを提供するために、私は常にOauth2をベースにしたOpenID Connectを読んでいます。そうですか?

答えて

2

OAuth2.0は認証プロトコルです。 OpenID Connectは、IDトークンを組み込んで認証を追加します。

承認サーバサーバは、リソース所有者を認証して認証を取得した後、クライアントにトークンを発行します。

ここで、認証は認可サーバーであり、依存者ではありません。認証には、エンドユーザーと、使用された認証のみを識別する必要があります。

許可サーバーは、エンド・ユーザーを認証すると、保護されたエンドポイントとの通信に使用できるアクセス・トークンを戻します。そして、アクセストークンは、信頼された当事者に保護されたサービスの使用を許可する。

アクセストークンはエンドユーザーについて何も言わない。これらはRPに対して不透明であり、認証サーバーによってのみ消費されます。しかし、idトークンは、エンドユーザの詳細を持つJWTです。だから私はOpenID Connectが認証を提供していると言いました。

OAuth2.0とOpenID Connectの選択方法は?

考慮すべき多くの事実があります。これには「アイデンティティプロバイダサポートプロトコルはありますか?」という質問が含まれます。しかし、それはあなたがトークンをどのように消費するかという事実だけで終わります。

クライアントアプリケーションでエンドユーザーが保護されたエンドポイントを消費するだけで、そのアイデンティティの詳細について気にしない場合は、OAuth2.0を使用する必要があります。

しかし、クライアントアプリケーションでエンドユーザーを特定し、それらを認証すること(クライアントアプリケーションの他の機能(データベース呼び出しやそれらを必要とするようなウェルカムメッセージなど)について考える場合)では、OpenID Connectを使用する必要があります。

+0

唯一の違いは、OpendId Connectがユーザー情報を提供するレイヤーを提供する点です。それは非常にわずかなプロトコルの目的のようですね。 – Jordi

+0

@Jordiはい、いいえ。ユーザー情報を提供することは、適切に保護された方法で行わなければなりません。そのために、専用のプロトコル(OpenID Connect)があります。すべてのバリデーションとメカニズムが整っています。 –

+0

私はOpenId Connectを実装するためのプラットフォーム(残りのAPIサービスを含む)を作成しようとする開発者であるべきですか?それとも、OAtuh2を実装するだけで十分ですか?これまでは、APIを保護するためにOAuth2しか実装していませんでしたが、「サインアップ」、「ログイン」、「ログアウト」、「ログアウト」という操作は決して簡単ではありませんでした。これらのアクソンはOAuth2に関連しているのですか、それともOpenId Connectに近いですか? – Jordi

関連する問題