2016-10-17 8 views
1

私はSAML/OAuthを使用してSSOアプリケーションを開発しており、リダイレクト/コールバックURLの意味を理解しているかどうかはわかりません。 SAMLを例に挙げてみましょう。SAML/OAUTHリダイレクトURLの明確化

私は典型的なSAMLの設定があります。

IDPLoginURL : "https://myidp/login", 
Issuer: "myhost", 
RedirectURL: ? 
Certificate: "MII....." 

私は常に、リソースサーバまたはサービスプロバイダへのリダイレクトURLのポイント図と説明を参照してください。しかし、私はサービス上で異なるエンドポイントを持っている、今私は混乱しています。

私はアクセスのためにSAMLトークンを必要とするリソースのためのmyhost上のエンドポイントを持っている:

GET myhost/service1 
GET myhost/service2 

は、私は今二つの異なるリダイレクトURLが必要ではないでしょうか?

私が使用しています:https://github.com/steffow/meteor-accounts-saml

は、誰かがここに私のビット説明を与えることができます。

答えて

1

リダイレクトURLは、アプリケーションが認証プロセスの結果を受け取る方法として使用されます。アプリケーションはこの認証を第三者に委任し、設定されたリダイレクトURLを呼び出して結果を通知します。このリダイレクトを処理する方法を

には、例えば、定期的にサーバー側のWebアプリケーションは、ユーザーがログインして確認を受信すると、ログインセッションを開始することができ、アプリケーション固有のものです。通常、このセッションを発行して作成されますアイデンティティプロバイダ(SAML、OpenID ConnectまたはイベントOAuth 2.0を使用して)が送信した情報に基づくセッションCookie。次の要求は作成されたCookieを送信し、アプリケーションはアイデンティティプロバイダの関与なしに純粋にそれに基づいてこれらの要求を承認します。あなたのシナリオでは

、あなたがアクセスを許可するアクセストークンを必要とするWeb APIを持っているし、私は、このAPIによって公開されたエンドポイントを呼び出したい1つのまたは複数のクライアントアプリケーションがあるだろうと想像ようです。これは教科書のOAuth 2.0のシナリオです。リダイレクトURLは、APIにアクセスしたいクライアントアプリケーションのものです。リダイレクトURIが呼び出されるとすぐに、アプリケーションはアクセストークンを格納し、各エンドポイントを個別に呼び出すことができますが、常に同じトークンを使用します。

あなたの混乱は、あなたの正確なシナリオを目的としていないいくつかの図をチェックしたことが原因であると考えられます。アプリケーションのシナリオは、保護APIを呼び出すしたい、と仮定すると、あなたはこの図を確認することができます。

SPA using OAuth 2.0 implicit grant to access Web API

(ソース:SPA + API Scenario

をこの場合、リダイレクトURLはのためのものであろうSPAアプリケーションであり、Auth0(アイデンティティプロバイダ/認可サーバ)からSPAアプリケーションへの対話の一部として呼び出されます。

+0

これはSAML 2.0にも当てはまりますか? – Gobliins

+0

一般的に、SAMLは認証プロトコルであり、OAuth 2.0はより権限に特化していることを覚えておくことができます。SAMLからのトークンは、ユーザーが自分の本人であることを証明します.OAuth 2.0のアクセストークンは、特定のリソースにアクセスできることを証明します。アイデンティティトークンを利用してAPIへのアクセスを許可すると、OAuth 2.0がより適切になり(設定に時間がかかる可能性があります) –