2016-07-27 94 views
2

私のlaravelアプリケーションでのシングルサインオンの実装。私はこのプラグインを基本的に有名なSimpleSamlPhpのラッパーであるhttps://github.com/aacotroneo/laravel-saml2を使用することに決めました。LaravelのSimpleSamlPhpラッパーを使用したシングルサインオン

私は作曲を経由して、コードをダウンロードし、与えられた情報Remember that you don't need to implement those routes, but you'll need to add them to your IDP configuration. For example, if you use simplesamlphp, add the following to /metadata/sp-remote.php

$metadata['http://laravel_url/saml/metadata'] = array(
'AssertionConsumerService' => 'http://laravel_url/saml/acs', 
'SingleLogoutService' => 'http://laravel_url/saml/sls', 
//the following two affect what the $Saml2user->getUserId() will return 
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 
'simplesaml.nameidattribute' => 'uid' 
); 

あたりのように私は、任意のアイデアをmetadata/sp-remote.phpを見つけることができませんか? http://laravel_url/saml/acsに関する限り、サーバーにsamlをデプロイする必要はありますか?現在のところ、プラグインコードはlaravelコアアーキテクチャーコード階層のvendorsにあるためです。

+0

こんにちは、あなたは 'SimpleSamlPHP'をインストールまたは設定する必要がありますか? SAMLの統合?あなたは私にいくつかのヒントを教えてもらえますか? – ihue

+0

@hue私はその部分に戻ってくる機会を得られなかった、私はすぐにそれを行うかもしれないが、確かに。 –

答えて

4

まずいくつかの背景:

任意のSAML対話には2つの部分があります - アイデンティティ・プロバイダ( "IDP")およびサービスプロバイダ( "SP")が。 IDPは、必要に応じてさまざまなアプリケーション(SP)が接続するマスター認証者です。

アイデアは、ユーザーがあなたのアプリを訪問し、アイデンティティプロバイダにサービスプロバイダとして通信して資格情報を取得することです。また、複数のapps/SPが同じIDPに接続するため、シングルサインオンの利点が得られます。

設定フェーズでは、SPとIDPの間でメタデータ設定が入れ替えられ、SP間で信頼関係が確立されます。これはユーザレベルのデータではなく、アプリケーションレベルのデータであり、会話が可能です。

OK。今すぐあなたの質問に:

あなたのLaravelアプリケーションはIDPと話すことができますが、そうする前にいくつかのメタデータを交換する必要があります。あなたのアプリのメタデータは上記のスニペットです。これは、あなたがこの中を貼り付ける場所であるこのmetadata/sp-remote(またはより正確にmetadata/saml20-sp-remoteを、見つける場所ですIDPの構成で行く必要があります。

をまだ行っていない場合は、私がお勧めしたいです

最後のヒント:SAML2を使用している場合は、メタデータキーを変更してsaml2を参照する必要があることがわかりました。すなわち、$metadata['http://laravel_url/saml2/metadata']ではなく$metadata['http://laravel_url/saml/metadata']

+0

詳細な説明をお寄せいただきありがとうございます。 –

+0

驚くべき答え、私はあなたに1000 upvotesを与えることができますしたい。 :D – ihue

+0

また最後のヒントをいただきありがとうございます。 – ihue

関連する問題