More Related Content
PDF
PDF
PDF
なぜOpenID Connectが必要となったのか、その歴史的背景 PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜 PPTX
PPTX
KeycloakでFAPIに対応した高セキュリティなAPIを公開する PDF
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15 PDF
What's hot
PDF
これからのネイティブアプリにおけるOpenID Connectの活用 PDF
PDF
今なら間に合う分散型IDとEntra Verified ID PPTX
PDF
エンタープライズITでのOpenID Connect利用ガイドライン PDF
PDF
OpenID ConnectとAndroidアプリのログインサイクル PDF
PDF
PDF
PDF
PDF
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~ PPTX
Hybrid Azure AD Join 動作の仕組みを徹底解説 PPTX
Azure Api Management 俺的マニュアル 2020年3月版 PDF
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws PDF
PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation PDF
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect - PDF
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay PPTX
NGINXをBFF (Backend for Frontend)として利用した話 Viewers also liked
PDF
PDF
PPTX
PDF
Ad(microsoftの方)のOpenId Connect対応 PDF
OpenID ConnectとSCIMの標準化動向 PDF
PDF
PDF
PDF
PPTX
Beginning Java EE 6 勉強会(6) #bje_study PDF
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜 PDF
Microserviceなんて最初からやるもんじゃ無かった PDF
PPT
PDF
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG PDF
PDF
Spring Bootをはじめる時にやるべき10のこと PDF
PDF
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell Similar to SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
PPTX
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン PPTX
Latest Status of Identity Federation PPTX
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて PDF
OpenID Connect - Nat Sakimura at OpenID TechNight #7 PDF
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014 PPTX
Oidc how it solves your problems PDF
Shibboleth IdP V3とアカデミックIDフェデレーション - OpenID Summit 2015 PDF
Standard-based Identity (1) PDF
Cloud Identity Summit 2011 TOI PPTX
PPTX
PDF
Cloud Identity Summit 2012 TOI PPTX
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説 PDF
OpenID Connect Summit Transfer of Information PDF
Openid technight 20110909_fujie PDF
SCIM and OpenID Connect Intro PDF
PDF
The Security of OpenID Authentication 2.0 PDF
PPTX
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール More from Nov Matake
PDF
#idcon vol.29 - #fidcon WebAuthn, Next Stage PDF
FedCM - OpenID TechNight vol.19 PDF
Safari (ITP) & Chrome (SameSite=Lax as default) が Federation に与える影響 - OpenID ... PDF
PDF
FIDO @ LINE - #idcon vol.24 PDF
W3C Web Authentication - #idcon vol.24 PDF
NIST SP 800-63C - Federation and Assertions (FINAL) PDF
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016 PDF
NIST SP 800-63C #idcon vol.22 PDF
NIST SP 800-63-3 #idcon vol.22 PDF
ID連携入門 (実習編) - Security Camp 2016 PDF
ID連携概要 - OpenID TechNight vol.13 PDF
ミスコンとプライバシー ~ IdentityDuck誕生秘話 ~ #idcon PDF
FIDO alliance #idcon vol.18 PDF
OpenID Connect 101 @ OpenID TechNight vol.11 PDF
池澤あやかと学ぼう!: はじめてのOAuthとOpenID Connect - JICS 2014 PDF
OAuth認証再考からのOpenID Connect #devlove PDF
ID & IT 2013 - OpenID Connect Hands-on PDF
JWT Translation #technight PDF
MIT-KIT Intro at #idcon sattelite 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.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
フェデレーションの基本的な仕組み
認証
Copyright© 2014 OpenID Foundation Japan. All Rights Reserved.
サービス
(SP/RP)
認証サービス (IdP/OP)
認証情報
属性情報
● ユーザーは認証サービス(IdP/OPなど)で認証を受ける
● サービス(SP/RP)は、認証サービスが保持しているユーザー
の「認証情報」や「属性情報」が欲しい
- 17.
- 18.
- 19.
プロトコルで決められていること
● 認証情報や属性情報の表現形式
○ JSON
○ XML
● 認証情報や属性情報のやりとりの方法
○ HTTP
■ メソッド (GET、POSTなど)
■ パラメーター
○ SOAP
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
- 20.
- 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.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 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.
- 58.
各プロトコルの学習のポイント
● 用語を把握する
○ 登場人物(IdP、OP、SP、RP)と役割を覚える
● HTTP の知識重要
● プログラミング言語
○ 言語はなんでもいいので、簡単な Web アプリ
や HTTP クライアントが作れると捗る
○ Unix/Linux のコマンドでもOK!
Copyright © 2014 OpenID Foundation Japan. All Rights Reserved.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.