2017-05-11 60 views
1

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

答えて

2

誰がIDPで、誰がサービスプロバイダになるか。

IDP(Identity Provider)は、ユーザーまたはプリンシパルのIDを作成し、保存し、維持し、認証するユーザーです。あなたの場合、それはクライアントアプリケーションです。

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

SSO workflow

誰かが実装する必要が物事を言及することで助けてくださいことができます。

上記の図でわかるように、ユーザーがサイトのリソースにアクセスしようとすると、IDPにリダイレクトして、このユーザーが認証されているかどうかを確認し、探しています。 SSOのURLとその他の詳細は、IDPとSPの間でMetadataを通じて交換されます。

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

ユーザがサイトのログアウトをクリックすると、アプリケーションからセッションをクリアしてリダイレクトする必要があるかもしれませんIDPに連絡して、そこからもログアウトします。

smartinが示唆しているように、SAMLの実装を容易にするライブラリを使用できます。現在のアプリケーションをIDPに変換する際にSAMLについても学習しています。

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

1

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

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

をそれらのすべては、十分に文書化され、必要になります読書や学習に時間を費やす必要があります。

+0

ありがとうございました。非常にあなたの助けに感謝します! –

関連する問題