私は2つのSpringブートアプリケーションをSpringセキュリティSAML拡張で保護しています。 2つのアプリケーションはすでに実行されています。最初のもの(web-ui-app)は、REST APIである2番目のもの(service-app)へのユーザーインターフェイスです。SSOとSAML - 複数のサービスプロバイダ
アイデンティティプロバイダによって正しく認証されたweb-ui-appにアクセスした後、私はいくつかのservices-appのメソッドにアクセスしようとします。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body onload="document.forms[0].submit()">
<noscript>
<p>
<strong>Note:</strong> Since your browser does not support JavaScript, you must press the Continue button once to proceed.
</p>
</noscript>
<form action="https://ServiceProvider.com/SAML/SLO/Browser" method="post">
<div>
<input type="hidden" name="RelayState" value="0043bfc1bc45110dae17004005b13a2b"/>
<input type="hidden" name="SAMLRequest" value="PHNhbWxwOkxvZ291dFJlcXVlc3QgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCIgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iDQogICAgSUQ9ImQyYjdjMzg4Y2VjMzZmYTdjMzljMjhmZDI5ODY0NGE4IiBJc3N1ZUluc3RhbnQ9IjIwMDQtMDEtMjFUMTk6MDA6NDlaIiBWZXJzaW9uPSIyLjAiPg0KICAgIDxJc3N1ZXI+aHR0cHM6Ly9JZGVudGl0eVByb3ZpZGVyLmNvbS9TQU1MPC9Jc3N1ZXI+DQogICAgPE5hbWVJRCBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OnBlcnNpc3RlbnQiPjAwNWEwNmUwLWFkODItMTEwZC1hNTU2LTAwNDAwNWIxM2EyYjwvTmFtZUlEPg0KICAgIDxzYW1scDpTZXNzaW9uSW5kZXg+MTwvc2FtbHA6U2Vzc2lvbkluZGV4Pg0KPC9zYW1scDpMb2dvdXRSZXF1ZXN0Pg=="/>
</div>
<noscript>
<div>
<input type="submit" value="Continue"/>
</div>
</noscript>
</form>
</body>
</html>
これは、SSOの会話です:
しかし、代わりにサービス・アプリ、JSON応答から正しい応答を受信した、私はこのような何かを受け取ります。私は既にweb-ui-appによってログインしているので、サービス-appとサービスプロバイダの間のトランスペアレントな鍵交換であるとは思いませんか?
私には何が欠けていますか?
サービスプロバイダとして両方のプロジェクトをセットアップしていますか?ステートレスなセキュリティやセッションを使用していますか? 「Spring Security SAML拡張機能で保護されている」と言ったときに正確に何を意味するかを詳しく説明できますか?フロントエンドとバックエンドの両方が別々のサービスプロバイダであると言うのは正しいでしょうか? – blur0224
はい、フロントエンドとバックエンドはどちらもサービスプロバイダです。ステートレスサービス、残りのAPIはSAMLで保護することはできません。この場合の最善のアプローチは、フロントエンドアプリケーションでSAMLを使用し、残りのAPIでトークン認証を使用するOpenIDを使用することです。 –