2016-09-08 4 views
0

私のアプリケーションにいくつかの標準化されたSSOメカニズムを提供したいと思います(いくつかの異なるクライアント、バックエンドのサービス数が増えています)。 OIDC/OAuth 2が適切なツールであるかどうかは疑問です。 私が見たすべての例では、エンドユーザーはリソース所有者であり、アクセス許可を求めるページにRediderictingすることによって、一部の外部アプリケーションにアクセス許可を与えるかどうかを決定します。 私のユースケースは異なりますが、私はシステム内でOAuthを使用したい(apis、Webページなどの場合):リソース所有者はデータベースを持つサービス(アクセス権を持っている管理者)で、エンドユーザはリソースを取得しようとしますシステムから。ユーザーは何も許可することはできません、彼は付与することができます。シングルサインオンという名前の最も古典的なシナリオだと思います。 OAuth 2(またはOpenId Connect)で標準フローがありますか?それは達成可能ですか?あるいは間違ったツールを見ていますか?OpenId connect(OAuth 2):リソースオーナーがエンドユーザ(SSO)でない場合のフローをどのように見ますか?

答えて

2

OIDC/OAuthは、消費者シナリオとエンタープライズシナリオの両方に使用できます。 OAuthの同意ステップは、消費者指向のシナリオで有用です。あなたのようなエンタープライズシナリオを扱うときは、少なくともエンタープライズのアプリケーションでは暗黙的なので、同意を求めることに何の意味もありません。 OAuth/OIDCによって確実にカバーされています。認証サーバーは同意を求める必要はなく、特定のクライアントに対してそのステップをスキップするように構成できます(通常は)。だから:同意なしにOpenID Connectを使うのが適切だろう。

+0

このタイプのシナリオの例/チュートリアルをOIDCで指摘できますか。 IdentityServerで簡単に達成できるという知識はありますか? – rideronthestorm

0

あなたの用途には、OpenID ConnectとOAuth Client_Credsフローの組み合わせを使用できます。たとえば、一部のDBから従業員のデータを従業員に表示する必要があるHRMSアプリケーションがあるとします。 OAuthのサーバへのクライアントとして

    OpenIDプロバイダとの
  1. 登録HRMS
  2. 登録HRMS(OpenIDサーバとのOAuth Serverが同じであってもよい)
  3. ユーザーがHRMSアプリケーションに来る:

    。 Id_token Cookieがない場合はIDPにリダイレクト

    b。 IDPが認証され、成功した場合IDトークン付きSPにリダイレクトされます

    c。トークンが有効な場合、SPはそのトークンをブラウザに自身の別のリダイレクトを使用して、ホームページに設定します。

  4. 今すぐすべての処理はサーバ側になります: a。 HRMSアプリがIDPをヒットしてユーザーデータを取得します

    b。成功した場合は、OAuthサーバにアクセスしてaccess_tokenを取得します。

    c。成功した場合、それはDBサービスに話をaccess_tokenはを使用して データ

SP =サービスプロバイダーを取得し、IDP = IDプロバイダ 実際の流量は、セキュリティ上の考慮事項に基づいて、少し異なる場合があります。 これが役に立つと願っています。

関連する問題