つぶやき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>