クラウドとの認証連携
2011年2月18日(金)

4.3.3 SAMLレスポンスの生成
社内ポータル(Identity Provider)は、下記のようなSAMLレスポンスを生成します。
<!--//--><![CDATA[// ><!-- |
<samlp:Response ID="irFuI92kZe8XlXKFE17AZBm7i8QSK15xP4S0704eB" IssueInstant="2011-01-28T07:41:04Z" Version="2.0" |
xmlns="urn:oasis:names:tc:SAML:2.0:assertion" |
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" |
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> |
<Issuer>http://iwsamlp.example.com |
<samlp:Status> |
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> |
<Assertion ID="iPMDBDlyWGMddEQZxJzvtrrqTlKwnWlez05K2MuCE" |
IssueInstant="2011-01-28T07:41:04Z" Version="2.0" |
xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> |
<Issuer>http://iwsamlp.example.com |
<Subject> |
<NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">yonekawa@example.com |
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> |
<SubjectConfirmationData |
Recipient="https://login.salesforce.com" |
NotOnOrAfter="2011-01-28T07:51:04Z" /> |
<Conditions NotBefore="2011-01-28T07:36:04Z" |
NotOnOrAfter="2011-01-28T07:51:04Z"> |
<AudienceRestriction> |
<Audience>https://saml.salesforce.com |
<AuthnStatement AuthnInstant="2011-01-28T07:41:04Z"> |
<AuthnContext> |
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password |
//--><! |
ポイント(6) | SAMLでは、Identity Providerが、認証情報(ユーザーはどのような方法で認証されたかなど)をアサーション(Assertion)と呼ばれるXMLで作成します。 SAMLでは、アサーションを相手サイトに渡す場合、認証レスポンス(Response)と呼ばれるXMLでさらに包みます。 各電文のXML形式は、SAMLの「Core」仕様書に記述されています。 |
---|
次に、Identity Providerは、認証レスポンスが改ざんされないように認証レスポンスに、XML署名と呼ばれる方法で署名を付けます。この署名には最初に作成した秘密鍵を使用します。
<!--//--><![CDATA[// ><!-- |
<?xml version="1.0" encoding="UTF-8"?><samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" ID="irFuI92kZe8XlXKFE17AZBm7i8QSK15xP4S0704eB" IssueInstant="2011-01-28T07:41:04Z" Version="2.0"> |
<Issuer>http://iwsamlp.example.com |
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> |
<SignedInfo> |
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> |
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI=""> |
<Transforms> |
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> |
|
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> |
<DigestValue>Nq67lRA/RZ+7YZHuB519uJh9K+g= |
|
|
<SignatureValue>AA5vfTNFToGjkpjYa1yXL4WtC/oWvid7F1yZGGzJMX7cZb2Zq9C2jzp92C7olOJGZ9nuk2t/oK19 |
S+dMVx+69lNwF4JCro4/S2mSvs3HokTidMDr/yOP4vbH3ML3hOirJc5VOKV3/BG/DuyI8BTPd/yA |
soffhTzoXU9ruul5bZs= |
|
<samlp:Status> |
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> |
|
<Assertion ID="iPMDBDlyWGMddEQZxJzvtrrqTlKwnWlez05K2MuCE" IssueInstant="2011-01-28T07:41:04Z" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> |
<Issuer>http://iwsamlp.example.com |
<Subject> |
<NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">yonekawa@example.com |
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> |
<SubjectConfirmationData NotOnOrAfter="2011-01-28T07:51:04Z" Recipient="https://login.salesforce.com"/> |
|
|
<Conditions NotBefore="2011-01-28T07:36:04Z" NotOnOrAfter="2011-01-28T07:51:04Z"> |
<AudienceRestriction> |
<Audience>https://saml.salesforce.com |
|
|
<AuthnStatement AuthnInstant="2011-01-28T07:41:04Z"> |
<AuthnContext> |
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password |
|
|
|
//--><! |
ポイント(7) | SAMLでは、社内ポータル(Identity Provider)からsalesforce(Service Provider)へ送る認証レスポンスには、XML署名を必ず付けます。 XML署名を付けることで、悪意のあるユーザーが認証レスポンスを改ざんすることを防ぎます。 |
---|
4.3.4 SAMLレスポンスの送信
社内ポータル(Identity Provider)は、上記で作成した認証レスポンス(XML)をBASE64でエンコード後、下記のようなHTMLを使用し、ブラウザ経由で、salesforce(Service Provider)へ認証レスポンス(XML)転送します。
<!--//--><![CDATA[// ><!-- |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<meta http-equiv="Content-Style-Type" content="text/css"> |
<meta http-equiv="Content-Script-Type" content="text/javascript"> |
<meta http-equiv="Pragma" content="no-cache"> |
<meta http-equiv="Cache-Control" content="no-cache"> |
<meta http-equiv="Cache-Control" content="no-store"> |
<meta http-equiv="Expires" content=" Sun, 10 Jan 1990 01:01:01 GMT"> |
<title>login |
<style type="text/css"> |
<!-- |
.vb { visibility: visible; } |
.hd { visibility: hidden; } |
--> |
|
<script language="JavaScript"> |
|
//--><! |
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
全文検索エンジンによるおすすめ記事
- クラウドの活用事例
- 恒例となったOSSセキュリティ技術の勉強会、今回はSSOソフトウェア「Keycloak」に注目!
- 注目のWebAuthnと公式より早いKeycloak最新動向を紹介!OSSセキュリティ技術の会 第5回勉強会
- クライアントポリシーを利用したKeycloakの設定方法と、FAPIリファレンス実装の紹介
- Keycloakの最前線を体感できるイベント「Keyconf 23」レポート
- シングルサインオン認証とは ー その種類と仕組み、メリット・デメリットを解説
- ForgeRockとの提携やOpenStandiaにみるNRIのオープンソース戦略
- クラウド環境とアイデンティティ/アクセス管理
- Keycloakを用いたハードニングの実装方法
- グルージェント、米国CloudLockの日本語版を販売開始