web-dev-qa-db-ja.com

PHPアプリケーションにSSOを実装する手順

私はSSO実装の初心者です。従業員がアプリケーションにログインできるように、phpアプリケーション(当社がサポート)を使用するクライアントにSSOを実装することを検討しています。このためにSimpleSAMLを設定中です..私はSSOに関する記事を読んでいますが、その多くは役に立ちます。これを聞いてごめんなさい、私はそれがばかげていることを知っています。このシナリオでは、誰がIDPで、誰がサービスプロバイダーになりますか。クライアントは明らかに他のアプリケーションにもSSOを使用しています。誰かが私が私たちの側からセットアップする必要があるすべてに光を当てることができますか..私はそれらのそれぞれを行う方法について研究します..誰かが実装する必要があるものに言及することによって助けてくれませんか?.

7
Mvc Learner

iDPは誰で、サービスプロバイダーは誰ですか。

IDP(IDプロバイダー)は、ユーザーまたはプリンシパルのIDをsaml用語で作成、保存、維持、および認証するものです。したがって、あなたの場合、それはクライアントアプリケーションです。

SP(サービスプロバイダー)は、(IDPによって認証された)ユーザーにサービスまたはリソースを提供するものであるため、あなたの場合はアプリケーションです。

SSO workflow

誰かが実装する必要があるものに言及することによって助けてくれませんか。

上の図でわかるように、ユーザーがサイトのリソースにアクセスしようとすると、IDPにリダイレクトして、このユーザーが認証されているかどうかを確認し、探しているリソースを提供する必要があります。 SSO URLおよびその他の詳細は、メタデータを介してIDPとSP)の間で交換されます。

IDPがユーザーを認証すると、ユーザーはPOSTアプリケーションのURLに対する応答を返します。この応答には アサーション が含まれ、ユーザーの詳細とユーザーが認証されているかどうかを知ることができます。この応答(xml)を解析する必要があります。また、これらのアサーションは通常、証明書で署名され、ベース64でエンコードされます。

また、SLOについても考慮する必要があるため、ユーザーがサイトでログアウトをクリックしたときに、アプリケーションからセッションをクリアし、IDPにリダイレクトして、そこからもログアウトする必要がある場合があります。

Smartinが提案しているように、SAMLの実装を容易にするライブラリを使用できます。現在のアプリケーションをIDPに変換する作業をしているときに、SAMLについても学習しています:)

このSAMLの公式ドキュメントといくつかの図は非常に役に立ちました。 http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html

5
Vbp

アプリはSPであり、顧客はSPに登録するためのIdPメタデータを提供します。

PHPアプリケーションにSAMLサポートを追加するには、2つの選択肢があります。

それらのすべては十分に文書化されています、あなたは読書/学習にいくらかの時間を費やす必要があるでしょう。

3
smartin