Webアプリケーションの外部認証

Webアプリケーションの数は日々増加しており、それぞれにユーザー管理/認証/承認が含まれています。 ますます、ユーザーのWebサイトは、単一のCMSではなく、統合されたWebアプリケーションのセットです。 質問が発生します-そのような場合、これらのアプリケーション間の単一ユーザー認証の問題はどのように解決されますか?



問題は偶然ではなかった。 現在、製品の要件(Webアプリケーション)に取り組んでおり、製品には外部認証が必要であることを理解しています。 この認証の標準オプションはありますか?



最初に頭に浮かぶのは、OpenIDです。 OK、要件に書き込みます-OpenIDサポート。 ただし、すべてのアプリケーションとWebサイトがOpenID認証を使用するわけではありません。



2番目に思い浮かぶのは、次のような別のアプリケーションの側で認証サポートを実装することです。



最初に、認証に何らかの形で関連するすべてのusケースを書きます。

1.別のアプリケーションで認証されたユーザーアプリケーションに切り替える

2.ログイン

3.ログアウト

4.登録

5.パスワードを保存/パスワードをリセット

6.プロファイルパスワードの変更



1.「別のアプリケーションで認証されたユーザーアプリケーションへの切り替え。」 そのようなユーザーを自動的に認証するには、外部アプリケーションがユーザー名と認証トークンを渡す必要があり、認証トークンが最も興味深い部分です。 このトークンは、ユーザー名、外部アプリケーションインスタンス、私のアプリケーションインスタンスに固有である必要があります(つまり、外部アプリインスタンスの別のペア、私のアプリインスタンスには移動しません)。 このようなトークンを生成/チェックするメカニズムは、公開鍵暗号に基づいて実行できます。 別のオプション:アプリケーションインスタンスは、このトークンを確認するために外部アプリにhttpリクエストを行うことができますが、この方法はより多くのリソースを消費します。

2.ログイン-アプリケーションインスタンスは外部アプリ側にリダイレクト(またはすぐにログイン/パスワードで投稿)し、他のすべてに加えて外部アプリを渡しますReturnURL-認証が成功した場合に返す/リダイレクトするURL

3.ログアウト-ログインと同様、パラメーターの数が少ない

4.登録-ログインと同様

5.パスワードを記憶する-ログインと同様

6.プロファイルパスワードの変更-アプリでこの機能をブロックし、外部アプリケーションでプロファイルを変更するためのリンクを提供することは理にかなっていると思います



もちろんこれはすばらしいことですが、自転車のような匂いがします。 ハブロフスク市民には、Webアプリケーションの外部認証の問題を解決するためのリファレンス実装の例があるのでしょうか?



All Articles