私は認証/承認にOAuth2を使用しようとしていますが、周りをよく読んだ後、混乱しています...私はOAuthとOpenIDConnectが相互にどのように関係し、どのように正確に私はそれらを認証に使用できます。
これまでに理解したことから:
スコープとは、リソースサーバーで検証された、ユーザーがクライアントに付与した権限です
openID Connect id_tokenは、主にクライアントアプリケーション用であり、ユーザー情報を提供するためのものであり、リソースサーバーがユーザーを検証する方法としてではありません
これが私のユースケースです:
そして私が何をしているかしようとしている、それは私を驚かせます:
したがって、リソースサーバーで、外部エンティティによってユーザーに与えられたアクセス許可を確認する方法が必要です。どちらがOAuthの認証に使用することを禁じていると思いますか?
OAuth/OpenID接続でこれを実現する方法がわからない場合や、ユースケースに適合している場合でもわかりません。
テキストの壁についてお詫びします。ここでOAuth/OpenID Connectのスコープを誤解しているかどうかはわかりません。私は間違った仮定をしていますか?
ありがとうございました。
ロールの概念は、OpenID Connect(Oauth2)のアクセストークンで使用できます。
スコープは、アクセストークンに含める必要があるユーザーに関するクレームの要求であると考えてください。アクセスをリクエストするAPIは、(たとえば)「従業員」の役割が必要であることを知っており、「scope=openid roles
"リクエストのクエリパラメータ。
認証サーバー(AS)は、ユーザーに関する役割情報(LDAPディレクトリなど)にアクセスできます。その後、ユーザーのロールを検索し、それらをアクセストークンの「ロール」クレームに含めることができます。
また、ロール自体(scope=openid employee
)。その場合、ユーザーがそのグループのメンバーであれば、ASはそれを含めることができます。必要な役割に関する詳細な知識が必要なため、これは少しスケーラブルではありませんが、トークン内のPIIの量が減り、そのサイズが小さくなります。また、ユーザーが指定されたグループのメンバーではない場合(つまり、スコープをトークンに含めることができない場合)、ASはOAuth2に従ってこれをAPIに通知する必要があります。
役割の使用はかなり一般的で、いくつかの例は次の場所にあります。
質問2)と3)に関しては、これを行わないでください:)