OpenID Connect / OAuth / 
SAML / SCIM 
技術解説 
一般社団法人 OpenIDファウンデーション・ジャパンエバンジェリスト nov 
エクスジェン・ネットワークス株式会社 野村 健太郎
目次 
● 最新クラウドサービス利用事例 
● プロトコル四天王 
● SAML 解説 
● OAuth 2.0 解説 
● OpenID Connect 解説 
● SCIM 解説 
● まとめ 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
最新 
クラウドサービス 
利用事例 
(Greeの場合) 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Digital Identity 界の 
プロトコル四天王 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
本日紹介するプロトコル 
OpenID Connect 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
本日紹介するプロトコル 
フェデレーション プロトコル 
OpenID Connect 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
本日紹介するプロトコル 
ID プロビジョニング 
プロトコル 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
本日紹介するプロトコル 
コンシューマー系エンタープライズ系 
OpenID Connect 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
フェデレーションの基本的な仕組み 
OpenID Connect 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
フェデレーションの基本的な仕組み 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
サービス 
(SP/RP) 
認証サービス (IdP/OP)
フェデレーションの基本的な仕組み 
認証 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
サービス 
(SP/RP) 
認証サービス (IdP/OP)
フェデレーションの基本的な仕組み 
認証 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
サービス 
(SP/RP) 
認証サービス (IdP/OP) 
認証情報 
属性情報 
● ユーザーは認証サービス(IdP/OPなど)で認証を受ける 
● サービス(SP/RP)は、認証サービスが保持しているユーザー 
の「認証情報」や「属性情報」が欲しい
フェデレーションのパターン(1) 
認証 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
サービス 
(SP/RP) 
認証サービス (IdP/OP) 
認証情報 
属性情報
フェデレーションのパターン(2) 
認証サービス (IdP/OP) 
認証 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
認証情報 
属性情報 
サービス 
(SP/RP) 
認可コード 
アーティファクト
プロトコルで決められていること 
● 認証情報や属性情報の表現形式 
○ JSON 
○ XML 
● 認証情報や属性情報のやりとりの方法 
○ HTTP 
■ メソッド (GET、POSTなど) 
■ パラメーター 
○ SOAP 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML とは 
● https://wiki.oasis-open.org/security/FrontPage 
● SAML:Security Assertion Markup Lauguage 
● 認証情報、属性情報などを XML で表現 
● HTTP/SOAP などでやりとりする 
● 実装例 
○ サービス : 学認、Cybozu.com、Google Apps、 
Salesforce、Microsoft Azure AD、Dropbox 
○ ソフトウェア : OpenAM、Shibboleth、各ベンダの製品 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML 信頼関係の構築 
IdP SP 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
メタデータ 
(証明書、URL など)
SAML シーケンス 
IdP SP 
Initiate 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML シーケンス 
IdP SP 
Initiate 
SAML 認証リクエスト 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML シーケンス 
IdP SP 
Initiate 
SAML 認証リクエスト 
認証(ID/PW 送信) 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML シーケンス 
IdP SP 
Initiate 
SAML 認証リクエスト 
認証(ID/PW 送信) 
SAML 認証レスポンス 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML シーケンス 
IdP SP 
Initiate 
SAML 認証リクエスト 
認証(ID/PW 送信) 
SAML 認証レスポンス 
SP へのログイン完了 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML 認証リクエスト/認証レスポンス 
● リクエスト (かなり省略) 
<samlp:AuthnRequest 
ID="ppndejggibkmmdgignpgloakglfadfldhnphndhg" 
IssueInstant="2014-09-16T11:19:47Z 
Version="2.0" 
<saml:Issuer>https://sp.example.com</saml:Issuer> 
</samlp:AuthnRequest> 
● レスポンス (かなり省略) 
<samlp:Response 
デジタル署名情報 
<saml:NameID>taro@example.jp</saml:NameID> 
</samlp:Response> 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
実際のリクエスト/レスポンス 
リクエストレスポンス 
<samlp:AuthnRequest ID=" 
ppndejggibkmmdgignpgloakglfadfldhnphndhg" 
Version="2.0" IssueInstant="2011-04-16T11: 
19:47Z" ProtocolBinding="urn:oasis:names:tc: 
SAML:2.0:bindings:HTTP-POST" 
ProviderName="samlsp.example.jp" 
IsPassive="false" 
AssertionConsumerServiceURL="https://www. 
samlsp.example.jp/a/g.example.jp/acs"><saml: 
Issuer>samlsp.example.jp/a/g.example. 
jp</saml:Issuer><samlp:NameIDPolicy 
AllowCreate="true" Format="urn:oasis:names: 
tc:SAML:1.1:nameid-format:unspecified" 
/></samlp:AuthnRequest> 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
<samlp:Response ID="s2cc2b844fbfe543063c49b45ec60b6f75948037f1" InResponseTo=" 
bjlljiaibddgppbdpimacgdfeigppjndmcfnddni" Version="2.0" IssueInstant="2011-04-16T07:22:16Z" 
Destination="https://www.samlsp.example.jp/a/g.example.jp/acs"><saml:Issuer>http://idp.example.com: 
8180/openam</saml:Issuer><samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status: 
Success"> 
</samlp:StatusCode></samlp:Status><saml:Assertion ID="s2b91a971b66a1864a4e95b0fff617f3ddd47f3098" 
IssueInstant="2011-04-16T07:22:16Z" Version="2.0"><saml:Issuer>http://idp.example.com: 
8180/openam</saml:Issuer><ds:Signature><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http: 
//www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3. 
org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI="#s2b91a971b66a1864a4e95b0fff617f3ddd47f3098" 
><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds: 
Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds: 
DigestValue>QiBEfNqkRNiCUnMceZa5JoxdeMY=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds: 
SignatureValue> 
JMEZqoncBBpvoWoxUqMI79CpADROnDb9sil9q7j9F0j0DXpVtR92hksF7eByMpA+XSOtEv655SDyjz+rnoeoff 
OgtsiIbOAG+/a0+JUXpN27VXVJV3+WEDyAfwSqAT3a3KzF+7ssGOkEK8Ktpog8Sx60iOW4iNKGz8rcZ8pDq 
q0= 
</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate> 
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh 
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w 
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQ 
swCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmEx 
DDAK 
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0BAQ 
EFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+RkDsaN/igkA 
vV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNYJs0Vo5+IgjxuEWnjnnV 
gHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/UQzPKTPTYi9upbFXlrAKMwt 
Ff2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA 
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC/FfwWigmr 
W0Y0Q== 
</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><saml:Subject><saml:NameID Format=" 
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" NameQualifier="http://idp.example.com: 
8180/openam">taro</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm: 
bearer"><saml:SubjectConfirmationData InResponseTo="bjlljiaibddgppbdpimacgdfeigppjndmcfnddni" 
NotOnOrAfter="2011-04-16T07:32:16Z" Recipient="https://www.samlsp.example.jp/a/g.example.jp/acs" 
/></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore="2011-04-16T07:12:16Z" 
NotOnOrAfter="2011-04-16T07:32:16Z"><saml:AudienceRestriction><saml:Audience>samlsp.example.jp/a/g. 
example.jp</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement 
AuthnInstant="2011-04-16T07:22:16Z" SessionIndex="s2e924fdac5fe15c4559aab5118be38caed9dc7f01" 
><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes: 
PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml: 
AuthnStatement></saml:Assertion></samlp:Response>
OAuth 2.0 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
OpenID Connect 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SCIM 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
(SCIM の説明の前に) LDAPってご存知ですよね? 
LDAP LDAP サーバー 
クライアント 
LDAP 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
LDAP サーバー 
LDAP サーバー 
LDIF 
uid: taro 
... 
LDAP 
LDAP
SCIM は JSON + HTTP な 
ID プロビジョニングプロトコル 
SCIM SCIM サーバー 
クライアント 
JSON HTTP 
{ 
userName : taro 
... 
} 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
SCIM サーバー 
SCIM サーバー 
HTTP 
HTTP
SCIM とは 
● http://www.simplecloud.info/ 
● System for Cross-domain Identity Management 
● クラウドサービスにおける ID 管理の仕様 
● ユーザー情報やグループ情報を JSON で表現し、HTTP でリク 
エスト/レスポンスを送受信 (REST API) 
○ 策定中の最新仕様(SCIM 2.0)では XML に関する仕様は 
削除された 
● 実装例 
○ Salesforce、その他クラウドサービス 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SCIM の JSON スキーマ 
{ 
"schemas": ["urn:ietf:params:scim:schemas:core:2.0: 
User"], 
"userName": "taro@example.jp", 
"displayName": "NIHON Taro", 
"nickName": "taro", 
"meta": { 
省略 
} 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 
}
SCIM で利用する HTTP メソッド 
操作HTTPメソッド 
追加(生成) POST 
更新PUT (replace) 
PATCH (modify) 
削除DELETE 
取得/検索GET 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SCIM API の認証・認可 
● SCIM の API にだれでもアクセスできたら困るので、API の利 
用を制御するための認証・認可の仕組みが必要 
● しかし、SCIMでは認証・認可に関する仕様は定義されていない 
○ HTTP ベースだから、認証・認可も既存の HTTP ベースの 
仕様を使ってね、というスタンス 
○ 仕様では OAuth 2.0 を推奨と記載されている 
● 実サービスでも、認証・認可は OAuth 2.0 で実装されている場 
合が多い。そのため、SCIM API を利用する場合は OAuth 2.0 
の知識も必要 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SCIM リクエスト 
$ curl  
-H "Authorization: Bearer AccessToken(※)"  
-H "Content-Type: application/scim+json"  
-X "POST"  
-d  
‘{ 
JSON (詳細は省略) 
} ’  
https://scimsv.example.jp/v1/Users 
※アクセストークン(AccessToken)は事前に取得しておく 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SCIM レスポンス 
HTTP/1.1 201 Created 
Content-Type: application/scim+json 
Location: https://scimsv.example.jp/v1/Users/2819c223- 
7f76-453a-919d-413861904646 
{ 
JSON (詳細は省略) 
} 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
まとめ 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
各プロトコルの学習のポイント 
● 用語を把握する 
○ 登場人物(IdP、OP、SP、RP)と役割を覚える 
● HTTP の知識重要 
● プログラミング言語 
○ 言語はなんでもいいので、簡単な Web アプリ 
や HTTP クライアントが作れると捗る 
○ Unix/Linux のコマンドでもOK! 
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014

SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014

  • 1.
    OpenID Connect /OAuth / SAML / SCIM 技術解説 一般社団法人 OpenIDファウンデーション・ジャパンエバンジェリスト nov エクスジェン・ネットワークス株式会社 野村 健太郎
  • 2.
    目次 ● 最新クラウドサービス利用事例 ● プロトコル四天王 ● SAML 解説 ● OAuth 2.0 解説 ● OpenID Connect 解説 ● SCIM 解説 ● まとめ Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 3.
    最新 クラウドサービス 利用事例 (Greeの場合) Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 8.
    Digital Identity 界の プロトコル四天王 Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 9.
    本日紹介するプロトコル OpenID Connect Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 10.
    本日紹介するプロトコル フェデレーション プロトコル OpenID Connect Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 11.
    本日紹介するプロトコル ID プロビジョニング プロトコル Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 12.
    本日紹介するプロトコル コンシューマー系エンタープライズ系 OpenIDConnect Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 13.
    フェデレーションの基本的な仕組み OpenID Connect Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 14.
    フェデレーションの基本的な仕組み Copyright ©2014 OpenID Foundation Japan. All Rights Reserved. サービス (SP/RP) 認証サービス (IdP/OP)
  • 15.
    フェデレーションの基本的な仕組み 認証 Copyright© 2014 OpenID Foundation Japan. All Rights Reserved. サービス (SP/RP) 認証サービス (IdP/OP)
  • 16.
    フェデレーションの基本的な仕組み 認証 Copyright© 2014 OpenID Foundation Japan. All Rights Reserved. サービス (SP/RP) 認証サービス (IdP/OP) 認証情報 属性情報 ● ユーザーは認証サービス(IdP/OPなど)で認証を受ける ● サービス(SP/RP)は、認証サービスが保持しているユーザー の「認証情報」や「属性情報」が欲しい
  • 17.
    フェデレーションのパターン(1) 認証 Copyright© 2014 OpenID Foundation Japan. All Rights Reserved. サービス (SP/RP) 認証サービス (IdP/OP) 認証情報 属性情報
  • 18.
    フェデレーションのパターン(2) 認証サービス (IdP/OP) 認証 Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. 認証情報 属性情報 サービス (SP/RP) 認可コード アーティファクト
  • 19.
    プロトコルで決められていること ● 認証情報や属性情報の表現形式 ○ JSON ○ XML ● 認証情報や属性情報のやりとりの方法 ○ HTTP ■ メソッド (GET、POSTなど) ■ パラメーター ○ SOAP Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 20.
    SAML Copyright ©2014 OpenID Foundation Japan. All Rights Reserved.
  • 21.
    SAML とは ●https://wiki.oasis-open.org/security/FrontPage ● SAML:Security Assertion Markup Lauguage ● 認証情報、属性情報などを XML で表現 ● HTTP/SOAP などでやりとりする ● 実装例 ○ サービス : 学認、Cybozu.com、Google Apps、 Salesforce、Microsoft Azure AD、Dropbox ○ ソフトウェア : OpenAM、Shibboleth、各ベンダの製品 Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 22.
    SAML 信頼関係の構築 IdPSP Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. メタデータ (証明書、URL など)
  • 23.
    SAML シーケンス IdPSP Initiate Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 24.
    SAML シーケンス IdPSP Initiate SAML 認証リクエスト Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 25.
    SAML シーケンス IdPSP Initiate SAML 認証リクエスト 認証(ID/PW 送信) Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 26.
    SAML シーケンス IdPSP Initiate SAML 認証リクエスト 認証(ID/PW 送信) SAML 認証レスポンス Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 27.
    SAML シーケンス IdPSP Initiate SAML 認証リクエスト 認証(ID/PW 送信) SAML 認証レスポンス SP へのログイン完了 Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 28.
    SAML 認証リクエスト/認証レスポンス ●リクエスト (かなり省略) <samlp:AuthnRequest ID="ppndejggibkmmdgignpgloakglfadfldhnphndhg" IssueInstant="2014-09-16T11:19:47Z Version="2.0" <saml:Issuer>https://sp.example.com</saml:Issuer> </samlp:AuthnRequest> ● レスポンス (かなり省略) <samlp:Response デジタル署名情報 <saml:NameID>taro@example.jp</saml:NameID> </samlp:Response> Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 29.
    実際のリクエスト/レスポンス リクエストレスポンス <samlp:AuthnRequestID=" ppndejggibkmmdgignpgloakglfadfldhnphndhg" Version="2.0" IssueInstant="2011-04-16T11: 19:47Z" ProtocolBinding="urn:oasis:names:tc: SAML:2.0:bindings:HTTP-POST" ProviderName="samlsp.example.jp" IsPassive="false" AssertionConsumerServiceURL="https://www. samlsp.example.jp/a/g.example.jp/acs"><saml: Issuer>samlsp.example.jp/a/g.example. jp</saml:Issuer><samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names: tc:SAML:1.1:nameid-format:unspecified" /></samlp:AuthnRequest> Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. <samlp:Response ID="s2cc2b844fbfe543063c49b45ec60b6f75948037f1" InResponseTo=" bjlljiaibddgppbdpimacgdfeigppjndmcfnddni" Version="2.0" IssueInstant="2011-04-16T07:22:16Z" Destination="https://www.samlsp.example.jp/a/g.example.jp/acs"><saml:Issuer>http://idp.example.com: 8180/openam</saml:Issuer><samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status: Success"> </samlp:StatusCode></samlp:Status><saml:Assertion ID="s2b91a971b66a1864a4e95b0fff617f3ddd47f3098" IssueInstant="2011-04-16T07:22:16Z" Version="2.0"><saml:Issuer>http://idp.example.com: 8180/openam</saml:Issuer><ds:Signature><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http: //www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3. org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI="#s2b91a971b66a1864a4e95b0fff617f3ddd47f3098" ><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds: Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds: DigestValue>QiBEfNqkRNiCUnMceZa5JoxdeMY=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds: SignatureValue> JMEZqoncBBpvoWoxUqMI79CpADROnDb9sil9q7j9F0j0DXpVtR92hksF7eByMpA+XSOtEv655SDyjz+rnoeoff OgtsiIbOAG+/a0+JUXpN27VXVJV3+WEDyAfwSqAT3a3KzF+7ssGOkEK8Ktpog8Sx60iOW4iNKGz8rcZ8pDq q0= </ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate> MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQ swCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmEx DDAK BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0BAQ EFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+RkDsaN/igkA vV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNYJs0Vo5+IgjxuEWnjnnV gHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/UQzPKTPTYi9upbFXlrAKMwt Ff2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC/FfwWigmr W0Y0Q== </ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><saml:Subject><saml:NameID Format=" urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" NameQualifier="http://idp.example.com: 8180/openam">taro</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm: bearer"><saml:SubjectConfirmationData InResponseTo="bjlljiaibddgppbdpimacgdfeigppjndmcfnddni" NotOnOrAfter="2011-04-16T07:32:16Z" Recipient="https://www.samlsp.example.jp/a/g.example.jp/acs" /></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore="2011-04-16T07:12:16Z" NotOnOrAfter="2011-04-16T07:32:16Z"><saml:AudienceRestriction><saml:Audience>samlsp.example.jp/a/g. example.jp</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement AuthnInstant="2011-04-16T07:22:16Z" SessionIndex="s2e924fdac5fe15c4559aab5118be38caed9dc7f01" ><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes: PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml: AuthnStatement></saml:Assertion></samlp:Response>
  • 30.
    OAuth 2.0 Copyright© 2014 OpenID Foundation Japan. All Rights Reserved.
  • 31.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 32.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 33.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 34.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 35.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 36.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 37.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 38.
    OpenID Connect Copyright© 2014 OpenID Foundation Japan. All Rights Reserved.
  • 39.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 40.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 41.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 42.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 43.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 44.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 45.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 46.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 47.
    SCIM Copyright ©2014 OpenID Foundation Japan. All Rights Reserved.
  • 48.
    (SCIM の説明の前に) LDAPってご存知ですよね? LDAP LDAP サーバー クライアント LDAP Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. LDAP サーバー LDAP サーバー LDIF uid: taro ... LDAP LDAP
  • 49.
    SCIM は JSON+ HTTP な ID プロビジョニングプロトコル SCIM SCIM サーバー クライアント JSON HTTP { userName : taro ... } Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. SCIM サーバー SCIM サーバー HTTP HTTP
  • 50.
    SCIM とは ●http://www.simplecloud.info/ ● System for Cross-domain Identity Management ● クラウドサービスにおける ID 管理の仕様 ● ユーザー情報やグループ情報を JSON で表現し、HTTP でリク エスト/レスポンスを送受信 (REST API) ○ 策定中の最新仕様(SCIM 2.0)では XML に関する仕様は 削除された ● 実装例 ○ Salesforce、その他クラウドサービス Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 51.
    SCIM の JSONスキーマ { "schemas": ["urn:ietf:params:scim:schemas:core:2.0: User"], "userName": "taro@example.jp", "displayName": "NIHON Taro", "nickName": "taro", "meta": { 省略 } Copyright © 2014 OpenID Foundation Japan. All Rights Reserved. }
  • 52.
    SCIM で利用する HTTPメソッド 操作HTTPメソッド 追加(生成) POST 更新PUT (replace) PATCH (modify) 削除DELETE 取得/検索GET Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 53.
    SCIM API の認証・認可 ● SCIM の API にだれでもアクセスできたら困るので、API の利 用を制御するための認証・認可の仕組みが必要 ● しかし、SCIMでは認証・認可に関する仕様は定義されていない ○ HTTP ベースだから、認証・認可も既存の HTTP ベースの 仕様を使ってね、というスタンス ○ 仕様では OAuth 2.0 を推奨と記載されている ● 実サービスでも、認証・認可は OAuth 2.0 で実装されている場 合が多い。そのため、SCIM API を利用する場合は OAuth 2.0 の知識も必要 Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 54.
    SCIM リクエスト $curl -H "Authorization: Bearer AccessToken(※)" -H "Content-Type: application/scim+json" -X "POST" -d ‘{ JSON (詳細は省略) } ’ https://scimsv.example.jp/v1/Users ※アクセストークン(AccessToken)は事前に取得しておく Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 55.
    SCIM レスポンス HTTP/1.1201 Created Content-Type: application/scim+json Location: https://scimsv.example.jp/v1/Users/2819c223- 7f76-453a-919d-413861904646 { JSON (詳細は省略) } Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 56.
    まとめ Copyright ©2014 OpenID Foundation Japan. All Rights Reserved.
  • 58.
    各プロトコルの学習のポイント ● 用語を把握する ○ 登場人物(IdP、OP、SP、RP)と役割を覚える ● HTTP の知識重要 ● プログラミング言語 ○ 言語はなんでもいいので、簡単な Web アプリ や HTTP クライアントが作れると捗る ○ Unix/Linux のコマンドでもOK! Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
  • 59.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 60.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 61.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 62.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 63.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 64.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.
  • 65.
    Copyright © 2014OpenID Foundation Japan. All Rights Reserved.