Condividi tramite


Configurare l'iscrizione e l'accesso con un account SwissID usando Azure Active Directory B2C

Prima di iniziare, usare il selettore Scegli un tipo di criterio per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.

Questo articolo descrive come fornire l'iscrizione e l'accesso ai clienti con account SwissID nelle applicazioni usando Azure Active Directory B2C (Azure AD B2C). Si aggiunge SwissID ai flussi utente o ai criteri personalizzati usando il protocollo OpenID Connessione. Per altre informazioni, vedere SwissID Integration Guidelines – OpenID Connessione.

Prerequisiti

Creare un'applicazione SwissID

Per abilitare l'accesso per gli utenti con un account SwissID in Azure AD B2C, è necessario creare un'applicazione. Per creare un'applicazione SwissID, seguire questa procedura:

  1. Contattare il supporto di SwissID Business Partner.

  2. Dopo l'iscrizione con SwissID, fornire informazioni sul tenant di Azure AD B2C:

    Key Nota
    URI di reindirizzamento Specificare l'URI https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp . Se si usa un dominio personalizzato, immettere https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Sostituire your-tenant-name con il nome del tenant e your-domain-name con il dominio personalizzato.
    Metodo di autenticazione dell'endpoint del token client_secret_post
  3. Dopo la registrazione dell'app, le informazioni seguenti verranno fornite dal SwissID. Usare queste informazioni per configurare il flusso utente o i criteri personalizzati.

    Key Nota
    Ambiente Endpoint di configurazione noto di SwissID OpenId. Ad esempio, https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration.
    ID client ID client SwissID. Ad esempio, 11111111-2222-3333-4444-555555555555.
    Password Segreto client SwissID.

Configurare SwissID come provider di identità

  1. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.

  2. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.

  3. Selezionare Provider di identità e quindi selezionare Nuovo provider di OpenID Connect.

  4. Immetti un valore per Nome. Ad esempio, immettere SwissID.

  5. Per URL metadati immettere l'endpoint di configurazione noto url SwissID OpenId. Ad esempio:

    https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration
    
  6. Per ID client immettere l'ID client SwissID.

  7. In Segreto client immettere il segreto client SwissID.

  8. In Ambito, immettere il openid profile email.

  9. Lasciare i valori predefiniti per Tipo di risposta e Modalità di risposta.

  10. (Opzionale) Per l'hint di dominio, immettere swissid.com. Per altre informazioni, vedere Configurare l'accesso diretto tramite Active Directory B2C.

  11. In Mapping delle attestazioni del provider di identità selezionare le attestazioni seguenti:

    • ID utente: sub
    • Nome: given_name
    • Cognome: family_name
    • Posta elettronica: posta elettronica
  12. Seleziona Salva.

Aggiungere il provider di identità SwissID a un flusso utente

A questo punto, il provider di identità SwissID è stato configurato, ma non è ancora disponibile in nessuna delle pagine di accesso. Per aggiungere il provider di identità SwissID a un flusso utente:

  1. Nel tenant di Azure AD B2C selezionare Flussi utente.
  2. Fare clic sul flusso utente che si desidera aggiungere il provider di identità SwissID.
  3. In Provider di identità social selezionare SwissID.
  4. Seleziona Salva.
  5. Per testare i criteri, selezionare Esegui flusso utente.
  6. In Applicazione selezionare l'applicazione Web denominata testapp1 registrata in precedenza. L'URL di risposta dovrebbe mostrare https://jwt.ms.
  7. Selezionare il pulsante Esegui flusso utente.
  8. Nella pagina di iscrizione o accesso selezionare SwissID per accedere con l'account SwissID.

Se il processo di accesso ha esito positivo, il browser viene reindirizzato a https://jwt.ms, che visualizza il contenuto del token restituito da Azure AD B2C.

Creare una chiave dei criteri

È necessario archiviare il segreto client ricevuto da SwissID nel tenant di Azure AD B2C.

  1. Accedi al portale di Azure.
  2. Assicurarsi di usare la directory che contiene il tenant di Azure AD B2C. Selezionare il filtro Directory e sottoscrizione nel menu in alto e selezionare la directory che contiene il tenant.
  3. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
  4. Nella pagina Panoramica selezionare Framework dell'esperienza di gestione delle identità.
  5. Selezionare Chiavi dei criteri e quindi selezionare Aggiungi.
  6. Per Opzioni scegliere Manual.
  7. Immettere un nome per la chiave dei criteri. Ad esempio, SwissIDSecret. Verrà aggiunto automaticamente il prefisso B2C_1A_ al nome della chiave.
  8. In Segreto immettere il segreto client SwissID.
  9. In Uso chiave selezionare Signature.
  10. Fai clic su Crea.

Configurare SwissID come provider di identità

Per consentire agli utenti di accedere usando un account SwissID, è necessario definire l'account come provider di attestazioni con cui Azure AD B2C può comunicare tramite un endpoint. L'endpoint offre un set di attestazioni che vengono usate da Azure AD B2C per verificare se un utente specifico è stato autenticato.

È possibile definire un account SwissID come provider di attestazioni aggiungendolo all'elemento ClaimsProviders nel file di estensione del criterio.

  1. Aprire TrustFrameworkExtensions.xml.

  2. Trovare l'elemento ClaimsProviders. Se non esiste, aggiungerlo nell'elemento radice.

  3. Aggiungere un nuovo ClaimsProvider come illustrato di seguito:

    <ClaimsProvider>
      <Domain>SwissID.com</Domain>
      <DisplayName>SwissID</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SwissID-OpenIdConnect">
          <DisplayName>SwissID</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration</Item>
            <Item Key="client_id">Your Swiss client ID</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_SwissIDSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateDisplayName" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Impostare client_id sull'ID client SwissID.

  5. Salva il file.

Aggiungere un percorso utente

A questo punto, il provider di identità è stato configurato, ma non è ancora disponibile in nessuna delle pagine di accesso. Se non si ha un percorso utente personalizzato, creare un duplicato di un percorso utente modello esistente, altrimenti continuare con il passaggio successivo.

  1. Aprire il file TrustFrameworkBase.xml dallo starter pack.
  2. Trovare e copiare l'intero contenuto dell'elemento UserJourney che include Id="SignUpOrSignIn".
  3. Aprire TrustFrameworkExtensions.xml e trovare l'elemento UserJourneys. Se l'elemento non esiste, aggiungerne uno.
  4. Incollare l'intero contenuto dell'elemento UserJourney copiato come figlio dell'elemento UserJourneys.
  5. Rinominare l'ID del percorso utente. Ad esempio, Id="CustomSignUpSignIn".

Aggiungere il provider di identità a un percorso utente

Dopo aver creato un percorso utente, aggiungere il nuovo provider di identità al percorso utente. Aggiungere prima un pulsante di accesso, quindi collegare il pulsante a un'azione. L'azione è il profilo tecnico creato in precedenza.

  1. Trovare l'elemento del passaggio di orchestrazione che include Type="CombinedSignInAndSignUp"o Type="ClaimsProviderSelection" nel percorso utente. In genere è il primo passaggio di orchestrazione. L'elemento ClaimsProviderSelections contiene un elenco di provider di identità con cui un utente può accedere. L'ordine degli elementi controlla l'ordine dei pulsanti di accesso presentati all'utente. Aggiungere un elemento XML ClaimsProviderSelection . Impostare il valore di TargetClaimsExchangeId su un nome descrittivo.

  2. Nel passaggio di orchestrazione successivo aggiungere un elemento ClaimsExchange . Impostare ID sul valore dell'ID di scambio di attestazioni di destinazione. Aggiornare il valore di TechnicalProfileReferenceId sull'ID del profilo tecnico creato in precedenza.

Il codice XML seguente illustra i primi due passaggi di orchestrazione di un percorso utente con il provider di identità:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="SwissIDExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="SwissIDExchange" TechnicalProfileReferenceId="SwissID-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Configurare i criteri della relying party

I criteri della relying party, ad esempio SignUpSignIn.xml, specificano il percorso utente che verrà eseguito da Azure AD B2C. Trovare l'elemento DefaultUserJourney all'interno della relying party. Aggiornare ReferenceId in modo che corrisponda all'ID percorso utente in cui è stato aggiunto il provider di identità.

Nell'esempio seguente, per il CustomSignUpSignIn percorso utente, ReferenceId è impostato su CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Caricare il criterio personalizzati

  1. Accedi al portale di Azure.
  2. Selezionare l'icona Directory e sottoscrizione nella barra degli strumenti del portale e quindi la directory contenente il tenant di Azure AD B2C.
  3. Nel portale di Azure cercare e selezionare Azure AD B2C.
  4. In Criteri selezionare Identity Experience Framework.
  5. Selezionare Carica criteri personalizzati e quindi caricare i due file di criteri modificati, nell'ordine seguente: i criteri di estensione, ad esempio , quindi i criteri della relying party, ad esempio TrustFrameworkExtensions.xmlSignUpSignIn.xml.

Testare i criteri personalizzati

  1. Selezionare i criteri della relying party, ad esempio B2C_1A_signup_signin.
  2. In Applicazione selezionare un'applicazione Web registrata in precedenza. L'URL di risposta dovrebbe mostrare https://jwt.ms.
  3. Selezionare il pulsante Esegui adesso .
  4. Nella pagina di iscrizione o accesso selezionare SwissID per accedere con l'account SwissID.

Se il processo di accesso ha esito positivo, il browser viene reindirizzato a https://jwt.ms, che visualizza il contenuto del token restituito da Azure AD B2C.

Passare in produzione

SwissID IdP fornisce ambienti di pre-produzione e produzione. La configurazione descritta in questo articolo usa l'ambiente di pre-produzione. Per usare l'ambiente di produzione, seguire questa procedura:

  1. Contattare il supporto SwissId per un ambiente di produzione.
  2. Aggiornare il flusso utente o i criteri personalizzati con l'URI dell'endpoint di configurazione noto.

Passaggi successivi

Informazioni su come passare il token SwissID all'applicazione.