{"id":3893,"date":"2021-11-26T13:59:00","date_gmt":"2021-11-26T12:59:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=3893"},"modified":"2021-11-26T13:08:21","modified_gmt":"2021-11-26T12:08:21","slug":"federazione-cross-account-tra-amazon-connect-e-azure-ad-con-aws-sso","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/federazione-cross-account-tra-amazon-connect-e-azure-ad-con-aws-sso\/","title":{"rendered":"Federazione cross-account tra Amazon Connect e Azure AD con AWS SSO"},"content":{"rendered":"\n
Per le aziende \u00e8 diventato molto importante essere in grado di utilizzare differenti canali di comunicazione con i propri clienti, specialmente per fornire loro supporto. <\/p>\n\n\n\n
Nel mercato dei servizi di contact center, in cui esistono gi\u00e0 aziende affermate da tempo, Amazon Connect \u00e8 una alternativa interessante da prendere in considerazione: \u00e8 interamente gestito, facilmente scalabile e con un costo competitivorispettoai competitor sul mercato..<\/p>\n\n\n\n
L’intelligenza artificiale abbinata agli algoritmi di machine learning rende possibile la sentiment analysis<\/a> permettendo al business di ottenere informazioni di valore dai propri utenti.<\/p>\n\n\n\n Ogni cliente ha esigenze differenti che, a volte, ci portano a provare integrazioni tra servizi inusuali e non presenti nelle guide ufficiali.<\/p>\n\n\n\n In questo articolo descriveremo come siamo riusciti a configurazione una federazione cross-account fra Amazon Connect e Azure AD mediante l\u2019uso di AWS SSO.<\/p>\n\n\n\n Per un nostro cliente \u00e8 emersa l\u2019esigenza di configurare Amazon Connect affinch\u00e9 fosse possibile per gli utenti esistenti su Office365, contenuti quindi in una istanza Azure Active Directory, autenticarsi. L\u2019altro requisito era di mantenere il servizio in un account AWS separato, per permettere ad un gruppo ristretto di utenti la gestione di Amazon Connect ed altri servizi. <\/p>\n\n\n\n Amazon Connect permette l\u2019utilizzo di AWS Managed Microsoft AD ma, per realizzare la soluzione, abbiamo sfruttato gli Identity Provider aziendali gi\u00e0 configurati.<\/p>\n\n\n\n La nostra scelta \u00e8 ricaduta quindi su AWS SSO. Oltre ad essere molto flessibile nella configurazione di applicazioni SAML, offre la possibilit\u00e0 di implementare il single-sign-on sugli account AWS.<\/p>\n\n\n\n Come vedremo in questo articolo, Amazon Connect non consente di implementare direttamente l\u2019integrazione nativa con AWS SSO. Dovremo quindi configurare un\u2019applicazione SAML ed usarla come identity provider nell\u2019account di destinazione.<\/p>\n\n\n\n In questo articolo ci occuperemo di: <\/p>\n\n\n\n Per prima cosa occorre effettuare il login all\u2019admin center di Azure Active Directory<\/a> e selezionare \u201cEnterprise Applications\u201d. Fare click su \u201cCreate your own application\u201d e assegnare un nome univoco<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n In breve tempo l\u2019applicazione sar\u00e0 disponibile. A quel punto sar\u00e0 necessario impostare il Single sign-on<\/strong>: fare click sul menu e selezionare \u201cSAML<\/strong>\u201d<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Fare click sul link \u201cFederation data XML\u201d <\/strong> e scaricare il file. A questo punto \u00e8 possibile assegnare gli utenti all\u2019applicazione.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Terminata la configurazione dell\u2019applicazione fare login sulla console AWS nell\u2019account di management e selezionare il servizio \u201cAws Single Sign on<\/strong>\u201d<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Se AWS SSO \u00e8 gi\u00e0 stato configurato, \u00e8 sempre possibile cambiare l\u2019identity provider in uso sulla pagina \u201cSettings\u201d<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Selezionare \u201cExternal identity provider\u201d, <\/strong>scaricare il metadata file e, come fatto in precedenza, conservarlo in un luogo sicuro. <\/p>\n\n\n\n A questo punto occorre fare upload del file di metadati scaricato dalla console Azure. <\/p>\n\n\n\n <\/p>\n\n\n\n In questo modo, la configurazione della federazione fra Azure Active Directory e AWS SSO \u00e8 stata portata a termine. <\/p>\n\n\n\n Sulla console Azure \u00e8 possibile provare l\u2019applicazione, simulando un login con le credenziali correnti.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Se sulla console AWS sono state gi\u00e0 assegnate alcune applicazioni sar\u00e0 possibile vederle ed utilizzarle.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n \u00c8 possibile anche abilitare l\u2019auto provisioning degli utenti ed assegnare gli utenti in modo che siano automaticamente importati su AWS SSO. <\/p>\n\n\n\n Utilizzeremo un account AWS differente (internal-services<\/strong>) per configurare Amazon Connect. Utilizzando AWS SSO e Organization saremo in grado di assegnare permessi molto granulari a differenti utenti e ruoli. <\/p>\n\n\n\n Sull\u2019account internal-service alla sezione \u201cAmazon Connect\u201d, fare click su \u201cCreate new instance\u201d. <\/p>\n\n\n\n <\/p>\n\n\n\n A questo punto, nel wizard di configurazione, \u00e8 possibile selezionare le opzioni preferite e procedere con la creazione. Il servizio dopo pochi minuti sar\u00e0 pronto:<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Attenzione<\/strong>: Amazon Connect non supporta il provisioning automatico degli utenti: \u00e8 necessario creare un utente con lo stesso username definito in Azure Active Directory<\/p>\n\n\n\n Sulla console SSO dell\u2019account di management fare click su \u201cApplications\u201d \u201cAdd a new Application\u201d, ricercando l\u2019applicazione \u201cAmazon Connect<\/strong>\u201d.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Dopo aver assegnato un nome all\u2019applicazione, fare click su \u201cDownload\u201d alla sezione \u201cAWS SSO SAML metadata file\u201d.<\/p>\n\n\n\n Nell\u2019account internal-services<\/strong> selezionare il servizio IAM e, alla sezione \u201cIdentity Providers\u201d<\/strong>, fare click su \u201cAdd provider\u201d e fare l\u2019upload del metadata file appena caricato<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Una volta creato l\u2019identity provider \u00e8 necessario creare i ruoli e le policy per fare in modo che gli utenti SSO riescano ad accedere al servizio.Nella console IAM dell\u2019account internal-services fare click su Roles e \u201cCreate a new Role\u201d. Selezionare \u201cSAML 2.0 federation<\/strong>\u201d come tipo di trusted identity e selezionare l\u2019identity provider appena creato.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Creare una nuova policy per permettere al ruolo di ottenere un \u201cFederation Token\u201d dall\u2019istanza Amazon Connect, utilizzando questo template json:<\/p>\n\n\n\n \u00c8 possibile trovare il valore di \u201camazonconnectinstanceid\u201d facendo click sull\u2019istanza Connect e copiando l\u2019ultima parte del campo \u201cARN\u201d per region<\/strong>:Account-id <\/strong>utilizzare invece la region e l\u2019id dell\u2019account internal-service.<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Terminata la creazione occorre tornare sulla console AWS SSO sull\u2019account di management e modificare l\u2019applicazione Connect per concludere la configurazione. <\/p>\n\n\n\n <\/p>\n\n\n\n A questo punto alla sezione \u201cAttribute Mappings<\/strong>\u201d aggiungere un nuovo mapping, impostando https:\/\/aws.amazon.com\/SAML\/Attributes\/Role<\/a> come valore per il campo User attribute in the application<\/strong>\u201d e arn:aws:iam::internal-services-account-id<\/strong>:saml-provider\/saml-provider-name<\/strong>,arn:aws:iam::internal-services-account-id<\/strong>:role\/amazon-connect-federation-role<\/strong> come valore per il campo \u201cMaps to this string value or user attribute in AWS SSO\u201d<\/p>\n\n\n\n <\/p>\n\n\n\n <\/p>\n\n\n\n Una volta salvati i cambiamenti assegnare gli utenti utilizzando il tab \u201cAssigned users<\/strong>\u201d.<\/p>\n\n\n\nUse Case<\/h2>\n\n\n\n
Configurazione di AWS SSO<\/h2>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
N.B.: il file non dovr\u00e0 essere condiviso e andr\u00e0 mantenuto al sicuro.<\/p>\n\n\n\n<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure>\n\n\n\n
Sulla console Azure Active Directory Administration fare click su \u201cupload metadata file\u201d <\/strong>utilizzando il file scaricato dalla console AWS<\/p>\n\n\n\n<\/figure>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
Setup di Amazon Connect<\/h2>\n\n\n\n
Alla sezione \u201cidentity management\u201d, selezionare \u201cSAML 2.0-based authentication<\/strong>\u201d. Una volta selezionato il tipo di autenticazione non sar\u00e0 pi\u00f9 possibile modificarlo.<\/p>\n\n\n\n<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
Integrazione Con SSO<\/h2>\n\n\n\n
<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
Impostazione dei ruoli<\/h2>\n\n\n\n
<\/figure><\/div>\n\n\n\n
{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n \t{\n \t\"Sid\": \"Statement1\",\n \t\"Effect\": \"Allow\",\n \t\"Action\": \"connect:GetFederationToken\",\n \t\"Resource\": [\n \t\"arn:aws:connect:region:Account-id:instance\/amazonconnectintanceid\/user\/${aws:userid}\"\n \t]\n \t}\n\t]\n}\n<\/code><\/pre>\n\n\n\n
<\/figure><\/div>\n\n\n\n
Selezionare \u201cEdit configuration\u201d e lasciare vuoto il campo \u201cApplication start URL<\/strong>\u201d. Per il campo \u201cRelay state\u201d<\/strong> utilizzare: https:\/\/region<\/strong>.console.aws.amazon.com\/connect\/federate\/amazonconnectid<\/strong><\/a> inserendo i valori utilizzati in precedenza.<\/p>\n\n\n\n<\/figure><\/div>\n\n\n\n
<\/figure><\/div>\n\n\n\n
Testing<\/h2>\n\n\n\n