ID プロバイダの SAML SSO 要件

ID プロバイダの要件

このセクションでは、ID プロバイダが Cisco Collaboration アプリケーション用の SAML SSO サービスを展開するために満たす必要がある要件の概要を説明します。

ID プロバイダは以下のガイドラインに従う必要があります。

  • サポートは SAML 2.0 のみです。

  • サービス プロバイダーが開始する SSO にのみ対応します。

  • NameID 形式属性を urn:oasis:names:tc:SAML:2.0:nameid-format:transient に設定します。

  • IdP の要求を設定し、uid 属性名を、LDAP 属性にマッピングされた値(例:SAMAccountName)に含めます。

  • Cisco Unified Communications Manager は認証要求で ACS URL インデックスを使用します。 IdP は、サービスプロバイダのメタデータ内の ACS URL にインデックスを適用できる必要があります。 これは SAML 標準に準拠しています。

  • SAML アサーションの署名と暗号化の部分で複数の証明書を持つことはサポートされていません。 CSCvq78479 を参照してください。

SAML SSO を構成するとき、Cisco Collaboration の展開で以下のものを展開していることを確認してください。

  • Network Time Protocol—お使いの環境に NTP を展開し、Cisco Collaboration 展開と ID プロバイダの時刻が同期されるようにします。 IdP と Cisco Collaboration 展開の時差が 3 秒を超えないようにしてください。

  • DNS—Cisco コラボレーションアプリケーションと ID プロバイダは、お互いのアドレスを解決できる必要があります。

  • LDAP—Cisco Collaboration 展開で LDAP ディレクトリ同期を設定する必要があります。 しかし、LDAP 認証を無効にすることを推奨します。

  • 証明書—Cisco Collaboration 展開と ID プロバイダの間でメタデータファイルを交換する必要があります。 メタデータには、コラボレーションの展開と ID プロバイダの間の信頼関係を作成するために必要な証明書が含まれています。 Tomcat 証明書またはシステムが生成した自己署名証明書のいずれかを使用して、信頼を確立できます。

SAML 合意の種類

Cisco Unified Communications Manager は 2 種類の SAML メタデータ合意をサポートします。

  • クラスター全体 - この展開では、クラスター全体をカバーする単一のメタデータ合意を構成する必要があります。

  • ノードごと - この展開では、クラスター ノードごとに個別の合意で、複数のメタデータ合意を構成する必要があります。 各クラスタ ノードは、ID プロバイダと個別のメタデータを交換します。

図 1. Cisco Unified Communications Manager での 2 種類の SAML メタデータ合意

以下の画像は、ノードごとの合意を使用して Cisco Unified Communications Manager で生成されたメタデータ zip ファイルのコンテンツを示しています。 この例では、IM and Presence サービスは標準導入(非集中型)を使用して導入されるため、zip ファイルには Unified Communications Manager および IM and Presence サービスクラスタノードごとに個別のメタデータ xml ファイルが含まれます。

図 2. Cisco Unified Communications Manager からダウンロードされた UC メタデータファイル

(注)  


IM and Presence Service の集中導入の場合、IM and Presence Service の導入はテレフォニークラスターとは別のクラスターにあります。 クラスター全体の合意では、テレフォニークラスターと IM & Presence クラスターのメタデータを別々に生成する必要があります。

メタデータ交換

SAML SSO 設定プロセスの一部として、UC 展開と ID プロバイダの間でメタデータファイルを交換する必要があります。

図 3. SAML メタデータ交換

以下は、サービス プロバイダー (Cisco Unified Communications Manager) から生成された UC メタデータ ファイルの例です。

サービス プロバイダーからのメタデータ ファイル (Cisco Unified Communications Manager)

<?xml version="1.0" encoding="UTF-8"?>
<!--With Single Cluster agreement the entityID is always the publisher FQDN-->
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="cucm0a.identitylab20.ciscolabs.com" entity ID="cucm0a.identitylab20.ciscolabs.com">
	    <!--We don't require AuthN or signed Assertions but comply to what the IdP requests-->
	    <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
	      <md:KeyDescriptor use="signing">
		 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
		   <ds:X509Data> 	 	
		     <ds:X509Certificate>MIIDzzCCA........</ds:X509Certificate>		
		   </ds:X509Data>
		 </ds:KeyInfo>
		</md:KeyDescriptor>
	  <!--Certificate for Signing and/or Encryption-->
		<md:KeyDescriptor use="encryption">
		  <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
		    <ds:X509Data>
		      <ds:X509Certificate>MIIDzzCCA........</ds:X509Certificate>
		    </ds:X509Data>
		  </ds:KeyInfo>
		</md:KeyDescriptor>
	  <!--We only support name-id format transient--><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat><!--ACS URL for the Client to POST the answer from the IdP, two per node in the cluster-->
		 <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://cucm0a.identitylab20.ciscolabs.com:8443/ssosp/saml/SSO/alias/cucm0a.identitylab20.ciscolabs.com" index="0"/>
               <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://cucm0a.identitylab20.ciscolabs.com:8443/ssosp/saml/SSO/alias/cucm0a.identitylab20.ciscolabs.com" index="1"/>
	    </md:SPSSODescriptor>
</md:EntityDescriptor>

以下は、ID プロバイダ(Active Directory Federation Service)から生成されたメタデータファイルの例です

ID プロバイダからのメタデータファイル(Active Directory Federation Service)

<?xml version="1.0"?
<!--entityID=IdP Entity ID-->
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" ID="_b12fe1b5-6866-40cc-94be-9d9d8cb71916" 
   entityID="http://WIN-2019SSO.cisco-dod.com/adfs/services/trust">
	<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	  <ds:SignedInfo>
	    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
	      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
		  <ds:Reference URI="#_b12fe1b5-6866-40cc-94be-9d9d8cb71916">	
                  <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>
		    <!--Sign the metadata provided to the SP for extra security-->
		    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>	
		    <ds:DigestValue>VAcIv2uw6zG8YVVWP0IDYMZ/e7CN9o4oR8XBGiysujY=</ds:DigestValue>
		  </ds:Reference>
	  </ds:SignedInfo>
	  <ds:SignatureValue>44RAgZ17YfwLdcRodZPcZ5PH05sLVbkDx4uAYq+EC4K+ZhiTs8aUZQ/.........
	  </ds:SignatureValue>		
	  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
		<X509Data>
   <IDPSSODescriptor protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="administrator.cisco-dod.com">
	<KeyDescriptor use="encryption">
	  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
	    <X509Data>
		<X509Certificate>MIIGHzCCBQegAwIBAgITHAAADUerWbVHyqoM..........
		</X509Certificate>
	    </X509Data>
	  </KeyInfo>
	</KeyDescriptor>
	<KeyDescriptor use="signing">
	  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">	
	    <X509Data>
         <!--Cert for signing and/or encrypting the SAML Assertion--><X509Certificate>MIIC7jCCAdagAwIBAgIQJH7di/..........</ds:X509Certificate>
	   </KeyInfo>
	</KeyDescriptor>
   <!--Single Sign On Service details for HTTP-Redirect and HTTP-POST--><SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win-2019sso.cisco-dod.com/adfs/ls/"/
   <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win-2019sso.cisco-dod.com/adfs/ls/"/>
   <!--NameID format offer for this agreement-->
   <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
   <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>
   <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
   <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://win-2019sso.cisco-dod.com/adfs/ls/" index="0" isDefault="true"/>
   <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://win-2019sso.cisco-dod.com/adfs/ls/" index="1"/> 
   <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://win-2019sso.cisco-dod.com/adfs/ls/" index="2"/>
   </IDPSSODescriptor>
</EntityDescriptor>

SAML アサーション

以下は、ID プロバイダから Cisco Unified Communications Manager に送信される SAML アサーションの例です。

図 4. SAML アサーションの例

SAML OAuth 認証フロー

以下は、ID プロバイダによる OAuth 認証リクエストの認証フローの例です。

図 5. OAuth 認証フロー