Integrazione SAML MVPD proxy
Panoramica overview-proxy-mvpd-saml-int
Questo documento descrive il flusso di autenticazione SAML per le integrazioni Proxy. Questi flussi dipendono dai dati di configurazione proxy presenti nella configurazione del server di autenticazione Adobe Pass. Il Proxy MVPD invia i dati di configurazione proxy al server di autenticazione Adobe Pass tramite il servizio Web Adobe Pass Authentication Proxy.
Dati configurazione proxy proxy-config-data
Ogni proxy MVPD fornisce i dati di configurazione proxy per i MVPD proxy al servizio Web proxy di autenticazione di Adobe Pass. Dettagli relativi a che sono descritti nella documentazione del servizio web proxy. Affinché il flusso AuthN SAML funzioni, i dati di configurazione proxy devono includere le seguenti proprietà:
Flussi di integrazione SAML saml-int-flows
Quando un abbonato a MVPD visita il sito o l’applicazione di un programmatore, Adobe Pass Authentication risponde a una chiamata API dal sito o dall’applicazione con un elenco di MVPD attivati per quel programmatore. L'integrazione può essere diretta o proxy; non c'è distinzione tra di loro per il programmatore. Questo consente ai programmatori di presentare l'elenco degli MVPD attivi in qualsiasi modo lo ritengano opportuno. Il sottoscrittore sceglie il proprio MVPD e l’autenticazione Adobe Pass reindirizzerà il sottoscrittore al provider di identità specifico di MVPD.
Nel caso di un proxy MVPD integrato, l’integrazione viene eseguita tra l’autenticazione di Adobe Pass e il proxy MVPD. Autenticazione di Adobe Pass invia la richiesta di autenticazione dell’utente al proxy MVPD, che viene gestito dal proxy MVPD. Affinché il proxy MVPD sappia dove reindirizzare la richiesta di autenticazione dell’utente, Adobe Pass Authentication invia un identificatore MVPD nella richiesta di autenticazione SAML. Questo identificatore è l'ID MVPD specificato dal provider proxy tramite il servizio Web proxy come specificato in precedenza.
Autenticazione authn-saml-int
Affinché l’autenticazione Adobe Pass possa essere integrata con un MVPD proxy, è necessario quanto segue:
-
Un MVPD proxy ha fornito un elenco di MVPD proxy, inviati al servizio Web proxy di Adobe
-
Metadati SAML per il proxy MVPD padre
-
(Consigliato) - Il MVPD proxy gestisce il reindirizzamento aggiuntivo all'URL della pagina di accesso del MVPD proxy
-
Il proxy MVPD deve aprire le porte 443 e 80 per i seguenti IP:
- 192.150.4.5
- 192.150.10.200
- 192.150.11.4
- 4.53.93.130
- 193.105.140.131
- 193.105.140.132
- 76.74.170.204
- 63.140.39.4
- 66.235.132.38
- 66.235.139.38
- 66.235.139.168
Richiesta e risposta SAML di autenticazione authn-saml-req-resp
Nella richiesta AuthN SAML, le integrazioni proxy includono la seguente proprietà aggiuntiva che deve essere gestita dal proxy MVPD. Questa proprietà è necessaria per elaborare correttamente il richiedente per conto del MVPD proxy e per eseguire il rendering dell’esperienza di accesso corretta. Questa proprietà è evidenziata nella richiesta di esempio seguente.
Proprietà ambito - Include un elemento IDPEntry che include l'ID_MVPD e il nome MVPD specifici. Rappresenta il MVPD effettivamente selezionato dall'utente nel selettore del programmatore e corrisponde al valore MVPD_ID specificato nel servizio Web proxy.
Esiste un’ulteriore proprietà di ambito per RequestorID che può essere utilizzata per personalizzare l’accesso a un particolare brand del programmatore (se necessario). Oppure, può essere utilizzato semplicemente per le analisi da cui proviene la richiesta.
Nella risposta AuthN SAML, il MVPD proxy deve specificare il MVPD proxy come entità IdP nelle seguenti proprietà:
- Emittente SAML
- Qualificatore nome
Richiesta AuthN di esempio
<samlp:AuthnRequest
AssertionConsumerServiceURL="https://sp.auth-staging.adobe.com/sp/saml/SAMLAssertionConsumer"
Destination="DESTIONATION_URL"
ForceAuthn="false"
ID="_4cb70308-b445-462e-b044-f7d0323dde0c"
IsPassive="false"
IssueInstant="2012-04-03T15:41:25.884Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
https://saml.sp.auth-staging.adobe.com
</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...........
</ds:Signature>
<samlp:NameIDPolicy AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
SPNameQualifier="https://saml.sp.auth-staging.adobe.com"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" />
<samlp:Scoping xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:IDPList xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:IDPEntry Name="MVPD NAME" ProviderID="MVPD_ID"/>
</samlp:IDPList>
<samlp:RequesterID xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
RequestorID-Value
</samlp:RequesterID>
</samlp:Scoping>
</samlp:AuthnRequest>
Esempio di risposta AuthN
<samlp:Response Destination="https://sp.auth-staging.adobe.com/sp/saml/SAMLAssertionConsumer"
ID="_1d39be60-66de-012f-bfd5-0030488a31a4"
InResponseTo="_4cb70308-b445-462e-b044-f7d0323dde0c"
IssueInstant="2012-04-12T15:00:06Z"
Version="2.0"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" >
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">ISSUER_VALUE</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ID="_1d39c280-66de-012f-bfd6-0030488a31a4"
IssueInstant="2012-04-12T15:00:06Z"
Version="2.0"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" >
<saml:Issuer>ISSUER_VALUE</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...........
</ds:Signature>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
NameQualifier="IDP_NameQualifier"
SPNameQualifier="https://saml.sp.auth-staging.adobe.com">
oRD6ALr5jlzkofNR1OaSCDbC6GaXV1cq8gF7Eotf
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="_4cb70308-b445-462e-b044-f7d0323dde0c"
NotOnOrAfter="2012-04-12T15:10:06Z"
Recipient="https://sp.auth-staging.adobe.com/sp/saml/SAMLAssertionConsumer" />
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2012-04-12T15:00:06Z"
NotOnOrAfter="2012-04-12T15:10:06Z">
<saml:AudienceRestriction>
<saml:Audience>https://saml.sp.auth-staging.adobe.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2012-04-12T15:00:06Z"
SessionIndex="f6d15540cf27966115028d35c94eefb9" >
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
Autorizzazione authz-proxy-mvpd-saml-int
Per la parte autorizzazione, MVPD deve accettare per l’autorizzazione la risorsa specificata dal Programmatore. Nella maggior parte dei casi, si tratta di un identificatore stringa per la rete del canale, ad esempio TBS o TNT.
Richiesta e risposta SAML di autorizzazione authz-saml-req-resp
Nella risposta AuthZ, l'AUTORITÀ EMITTENTE deve corrispondere all'AUTORITÀ EMITTENTE della risposta SAML, che deve essere l'identificatore MVPD proxy.
Richiesta XACML AuthZ di esempio
<?xml version="1.0" encoding="UTF-8"?>
<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
<soap11:Header/>
<soap11:Body>
<xacml-samlp:XACMLAuthzDecisionQuery
xmlns:xacml-samlp="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol"
ID="_c2346a8f2c9cfb205b6b8bf12c2db4d0" IssueInstant="2012-04-12T15:07:51.280Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://saml.sp.auth-staging.adobe.com
</saml:Issuer>
<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/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_c2346a8f2c9cfb205b6b8bf12c2db4d0">
<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#">
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
PrefixList="ds saml xacml-context xacml-samlp"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>GmEkSZI+SDS1i4vV2ApGh0mx1X4=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>..........</ds:SignatureValue>
</ds:Signature>
<xacml-context:Request xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os">
<xacml-context:Subject
SubjectCategory="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
<xacml-context:Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
DataType="http://www.w3.org/2001/XMLSchema#string">
<xacml-context:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xacml-context:AttributeValueType">
oRD6ALr5jlzkofNR1OaSCDbC6GaXV1cq8gF7Eotf
</xacml-context:AttributeValue>
</xacml-context:Attribute>
</xacml-context:Subject>
<xacml-context:Resource>
<xacml-context:Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
DataType="http://www.w3.org/2001/XMLSchema#string">
<xacml-context:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xacml-context:AttributeValueType">TBS
</xacml-context:AttributeValue>
</xacml-context:Attribute>
</xacml-context:Resource>
<xacml-context:Action>
<xacml-context:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
DataType="http://www.w3.org/2001/XMLSchema#string">
<xacml-context:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xacml-context:AttributeValueType">VIEW
</xacml-context:AttributeValue>
</xacml-context:Attribute>
</xacml-context:Action>
<xacml-context:Environment>
<xacml-context:Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:authn-locality:ip-address"
DataType="urn:oasis:names:tc:xacml:2.0:data-type:ipAddress">
<xacml-context:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xacml-context:AttributeValueType">127.0.0.1
</xacml-context:AttributeValue>
</xacml-context:Attribute>
</xacml-context:Environment>
</xacml-context:Request>
</xacml-samlp:XACMLAuthzDecisionQuery>
</soap11:Body>
</soap11:Envelope>
Risposta XACML AuthZ di esempio (autorizzazione concessa)
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_311fa030-66df-012f-bfd7-0030488a31a4"
IssueInstant="2012-04-12T15:07:49Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">ISSUER</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<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/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_311fa030-66df-012f-bfd7-0030488a31a4">
<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>2+fDBPYnOT1w5dufJZoVsgckRkM=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>..........</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>.........</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<xacml-samlp:Assertion xmlns:xacml-samlp="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_311fa5a0-66df-012f-bfd8-0030488a31a4" IssueInstant="2012-04-12T15:07:49Z"
Version="2.0">
<xacml-samlp:Issuer>ISSUER</xacml-samlp:Issuer>
<xacml-samlp:Conditions NotBefore="2012-04-12T15:07:49Z" NotOnOrAfter="2012-04-13T15:07:49Z">
<xacml-samlp:AudienceRestriction>
<xacml-samlp:Audience>https://saml.sp.auth-staging.adobe.com</xacml-samlp:Audience>
</xacml-samlp:AudienceRestriction>
</xacml-samlp:Conditions>
<xacml-saml:XACMLAuthzDecisionStatement
xmlns:xacml-saml="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:assertion"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xacml-context:Response xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os">
<xacml-context:Result ResourceId="TBS">
<xacml-context:Decision>Permit</xacml-context:Decision>
</xacml-context:Result>
</xacml-context:Response>
</xacml-saml:XACMLAuthzDecisionStatement>
</xacml-samlp:Assertion>
</samlp:Response>
</soap-env:Body>
</soap-env:Envelope>
Risposta XACML AuthZ di esempio (autorizzazione negata)
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_69ed8d80-66df-012f-bfda-0030488a31a4"
IssueInstant="2012-04-12T15:09:24Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">ISSUER</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<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/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_69ed8d80-66df-012f-bfda-0030488a31a4">
<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>2SXNFA4pb/283wq5FVQdp4Ms5SQ=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>........</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>........</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<xacml-samlp:Assertion xmlns:xacml-samlp="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_69ed91e0-66df-012f-bfdb-0030488a31a4" IssueInstant="2012-04-12T15:09:24Z"
Version="2.0">
<xacml-samlp:Issuer>ISSUER</xacml-samlp:Issuer>
<xacml-samlp:Conditions NotBefore="2012-04-12T15:09:24Z" NotOnOrAfter="2012-04-13T15:09:24Z">
<xacml-samlp:AudienceRestriction>
<xacml-samlp:Audience>https://saml.sp.auth-staging.adobe.com</xacml-samlp:Audience>
</xacml-samlp:AudienceRestriction>
</xacml-samlp:Conditions>
<xacml-saml:XACMLAuthzDecisionStatement
xmlns:xacml-saml="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:assertion"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xacml-context:Response xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os">
<xacml-context:Result ResourceId="NOT_Authorized_Resouce">
<xacml-context:Decision>Deny</xacml-context:Decision>
</xacml-context:Result>
</xacml-context:Response>
</xacml-saml:XACMLAuthzDecisionStatement>
</xacml-samlp:Assertion>
</samlp:Response>
</soap-env:Body>
</soap-env:Envelope>