つぶやきテック

日々のつぶやきアウトプット

つぶやきSSO【ユーザ認証】

SSOとは

  • Single Sign-On の略で、一度ユーザ認証をするだけで関連するサーバへのアクセスについても認証する技術です。
  • ユーザの利便性の向上が期待できます。

SSOの実装方式

Cookie型

  • 認証情報を含めたCookie情報を使ってSSOを行います。

リバースプロキシ型

  • リバースプロキシにアクセスを集約します。
  • リバースプロキシで認証に成功すると、プロキシはサーバに代理アクセスし、結果をユーザに返します。

SAML(Security Assertion Markup Language)型

  • 認証情報に加え、属性情報とアクセス制御情報を異なるドメインに伝達します。
  • 同一ドメインに留まらない大規模なサイトにおいてもSSOの仕組みを導入できます。

SAMLコードの例

こちらからお借りしました。

 1: <saml:Assertion
 2:   xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
 3:   Version="2.0" IssueInstant="2005-01-31T12:00:00Z">

 4:   <saml:Issuer Format=urn:oasis:names:SAML:2.0:nameid-format:entity> ... Nature of the assertion.
 5:     http://idp.example.org
 6:   </saml:Issuer>

 7:   <saml:Subject> ... Subject of the assertion.
 8:     <saml:NameID
 9:       Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
10:       j.doe@example.com
11:     </saml:NameID>
12:   </saml:Subject>

13:   <saml:Conditions ... Additional conditions of period.
14:     NotBefore="2005-01-31T12:00:00Z"
15:     NotOnOrAfter="2005-01-31T12:10:00Z">
16:   </saml:Conditions>

17:   <saml:AuthnStatement ... Authentication statement
18:     AuthnInstant="2005-01-31T12:00:00Z" SessionIndex="67775277772">

19:     <saml:AuthnContext>
20:       <saml:AuthnContextClassRef>
21:         urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
22:       </saml:AuthnContextClassRef>
23:     </saml:AuthnContext>

24:   </saml:AuthnStatement>
25: </saml:Assertion>