私は非常に単純な SSO (シングル サインオン) プロセスの設計を任されています。私の雇用主は、SAML で実装する必要があると指定しています。SAML仕様に準拠しながら、極力シンプルなメッセージを作成したいと考えています。
私のリクエストとレスポンスのメッセージを見て、私の目的に合っているかどうか、そこにある必要のないものが含まれているかどうか、必要なものが欠けているかどうかを教えてくれる人がいれば、本当に感謝しています。そこにいる必要があります。
さらに、件名に関する追加情報を応答のどこに入力する必要があるかを知りたいです。特に、件名の電子メールアドレス。
相互作用は次のように機能する必要があります。
- この時点で、ユーザーはサービス プロバイダーにサービスを要求しますが、サービス プロバイダーはユーザーについて何も知りません。
- サービス プロバイダーは、ID プロバイダーからのユーザーの認証を要求します
- ユーザーは ID プロバイダーによって認証/登録されます
- ID プロバイダーは、認証成功メッセージとユーザーの電子メール アドレスをサービス プロバイダーに返します。
リクエストは次のようにすべきだと思います。
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="abc"
IssueInstant="1970-01-01T00:00:00.000Z"
Version="2.0"
AssertionConsumerServiceURL="http://www.IdentityProvider.com/loginPage">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
http://www.serviceprovider.com
</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">3f7b3dcf-1674-4ecd-92c8-1544f346baf8</saml:NameID>
</saml:Subject>
私が考えるレスポンスは以下のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://www.serviceprovider.com/desitnationURL" ID="123" IssueInstant="2008-11-21T17:13:42.872Z" Version="2.0">
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0">
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">3f7b3dcf-1674-4ecd-92c8-1544f346baf8</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser">
<saml:SubjectConfirmationData InResponseTo="abc"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:AuthnStatement AuthnInstant="2008-11-21T17:13:42.899Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
繰り返しになりますが、私の質問は次のとおりです。
これは有効な SAML インタラクションですか?
要求または応答の XML を単純化できますか?
件名のメール アドレスは、返信のどこに入力すればよいですか?
本当にありがとうございました。本当にありがとう!
-モーガン