Dela via


Konfigurera registrering och inloggning med ett SwissID-konto med hjälp av Azure Active Directory B2C

Innan du börjar använder du väljaren Välj en principtyp för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.

I den här artikeln får du lära dig hur du tillhandahåller registrering och inloggning till kunder med SwissID-konton i dina program med hjälp av Azure Active Directory B2C (Azure AD B2C). Du lägger till SwissID i dina användarflöden eller anpassade principer med hjälp av OpenID Anslut protokoll. Mer information finns i SwissID Integration Guidelines – OpenID Anslut.

Förutsättningar

Skapa ett SwissID-program

Om du vill aktivera inloggning för användare med ett SwissID-konto i Azure AD B2C måste du skapa ett program. Följ dessa steg för att skapa SwissID-program:

  1. Kontakta supporten för SwissID Business Partner.

  2. Efter registreringen med SwissID anger du information om din Azure AD B2C-klientorganisation:

    Key Kommentar
    Omdirigerings-URI Ange URI:n https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp . Om du använder en anpassad domän anger du https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Ersätt your-tenant-name med namnet på din klientorganisation och your-domain-name med din anpassade domän.
    Tokenslutpunktsautentiseringsmetod client_secret_post
  3. När appen har registrerats kommer följande information att tillhandahållas av SwissID. Använd den här informationen för att konfigurera ditt användarflöde eller din anpassade princip.

    Key Kommentar
    Environment SwissID OpenId välkänd konfigurationsslutpunkt. Exempel: https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration
    Klient-ID SwissID-klient-ID:t. Exempel: 11111111-2222-3333-4444-555555555555
    Password SwissID-klienthemligheten.

Konfigurera SwissID som identitetsprovider

  1. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.

  2. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.

  3. Välj Identitetsprovidrar och välj sedan Ny OpenID-Anslut provider.

  4. Ange ett Namn. Ange till exempel SwissID.

  5. För Metadata-URL anger du den välkända konfigurationsslutpunkten för URL:en SwissID OpenId. Till exempel:

    https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration
    
  6. För Klient-ID anger du SwissID-klient-ID:t.

  7. För Klienthemlighet anger du SwissID-klienthemligheten.

  8. För omfånget anger du openid profile email.

  9. Lämna standardvärdena för Svarstyp och Svarsläge.

  10. (Valfritt) För domäntipset anger du swissid.com. Mer information finns i Konfigurera direkt inloggning med Azure Active Directory B2C.

  11. Under Identitetsproviderns anspråksmappning väljer du följande anspråk:

    • Användar-ID: sub
    • Förnamn: given_name
    • Efternamn: family_name
    • E-post: e-post
  12. Välj Spara.

Lägga till SwissID-identitetsprovider i ett användarflöde

Nu har SwissID-identitetsprovidern konfigurerats, men den är ännu inte tillgänglig på någon av inloggningssidorna. Så här lägger du till SwissID-identitetsprovidern i ett användarflöde:

  1. I din Azure AD B2C-klient väljer du Användarflöden.
  2. Klicka på det användarflöde som du vill lägga till SwissID-identitetsprovidern.
  3. Under Sociala identitetsprovidrar väljer du SwissID.
  4. Välj Spara.
  5. Om du vill testa principen väljer du Kör användarflöde.
  6. För Program väljer du webbprogrammet med namnet testapp1 som du registrerade tidigare. Svars-URL :en ska visa https://jwt.ms.
  7. Välj knappen Kör användarflöde.
  8. På registrerings- eller inloggningssidan väljer du SwissID för att logga in med SwissID-kontot.

Om inloggningsprocessen lyckas omdirigeras webbläsaren till https://jwt.ms, som visar innehållet i token som returneras av Azure AD B2C.

Skapa en principnyckel

Du måste lagra klienthemligheten som du fick från SwissID i din Azure AD B2C-klientorganisation.

  1. Logga in på Azure-portalen.
  2. Kontrollera att du använder katalogen som innehåller din Azure AD B2C-klientorganisation. Välj filtret Katalog + prenumeration på den översta menyn och välj den katalog som innehåller din klientorganisation.
  3. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.
  4. På sidan Översikt väljer du Identity Experience Framework.
  5. Välj Principnycklar och välj sedan Lägg till.
  6. För Alternativ väljer du Manual.
  7. Ange ett Namn för principnyckeln. Exempel: SwissIDSecret Prefixet B2C_1A_ läggs automatiskt till i namnet på din nyckel.
  8. I Hemlighet anger du din SwissID-klienthemlighet.
  9. För Nyckelanvändning väljer du Signature.
  10. Klicka på Skapa.

Konfigurera SwissID som identitetsprovider

För att göra det möjligt för användare att logga in med ett SwissID-konto måste du definiera kontot som en anspråksprovider som Azure AD B2C kan kommunicera med via en slutpunkt. Slutpunkten innehåller en uppsättning anspråk som används av Azure AD B2C för att verifiera att en viss användare har autentiserats.

Du kan definiera ett SwissID-konto som en anspråksprovider genom att lägga till det i elementet ClaimsProviders i tilläggsfilen för principen.

  1. Öppna TrustFrameworkExtensions.xml.

  2. Hitta elementet ClaimsProviders . Om den inte finns lägger du till den under rotelementet.

  3. Lägg till en ny ClaimsProvider på följande sätt:

    <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. Ange client_id till SwissID-klient-ID.

  5. Spara filen.

Lägga till en användarresa

I det här läget har identitetsprovidern konfigurerats, men den är ännu inte tillgänglig på någon av inloggningssidorna. Om du inte har en egen anpassad användarresa skapar du en dubblett av en befintlig mallanvändarresa, annars fortsätter du till nästa steg.

  1. Öppna filen TrustFrameworkBase.xml från startpaketet.
  2. Hitta och kopiera hela innehållet i elementet UserJourney som innehåller Id="SignUpOrSignIn".
  3. Öppna TrustFrameworkExtensions.xml och leta upp elementet UserJourneys. Om elementet inte finns lägger du till ett.
  4. Klistra in hela innehållet i elementet UserJourney som du kopierade som underordnat elementet UserJourneys .
  5. Byt namn på ID:t för användarresan. Exempel: Id="CustomSignUpSignIn"

Lägga till identitetsprovidern i en användarresa

Nu när du har en användarresa lägger du till den nya identitetsprovidern i användarresan. Du lägger först till en inloggningsknapp och länkar sedan knappen till en åtgärd. Åtgärden är den tekniska profil som du skapade tidigare.

  1. Leta reda på orkestreringsstegelementet som innehåller Type="CombinedSignInAndSignUp", eller Type="ClaimsProviderSelection" i användarresan. Det är vanligtvis det första orkestreringssteget. Elementet ClaimsProviderSelections innehåller en lista över identitetsprovidrar som en användare kan logga in med. Ordningen på elementen styr ordningen på de inloggningsknappar som visas för användaren. Lägg till ett ClaimsProviderSelection XML-element. Ange värdet för TargetClaimsExchangeId till ett eget namn.

  2. I nästa orkestreringssteg lägger du till ett ClaimsExchange-element . Ange ID:t till värdet för målanspråkets utbytes-ID. Uppdatera värdet för TechnicalProfileReferenceId till ID:t för den tekniska profil som du skapade tidigare.

Följande XML visar de två första orkestreringsstegen för en användarresa med identitetsprovidern:

<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>

Konfigurera principen för förlitande part

Principen för förlitande part, till exempel SignUpSignIn.xml, anger den användarresa som Azure AD B2C ska köra. Hitta elementet DefaultUserJourney i den förlitande parten. Uppdatera ReferenceId så att det matchar användarens rese-ID, där du lade till identitetsprovidern.

I följande exempel CustomSignUpSignIn för användarresan är ReferenceId inställt på CustomSignUpSignIn:

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

Ladda upp den anpassade principen

  1. Logga in på Azure-portalen.
  2. Välj ikonen Katalog + prenumeration i portalens verktygsfält och välj sedan den katalog som innehåller din Azure AD B2C-klientorganisation.
  3. I Azure-portalen söker du efter och väljer Azure AD B2C.
  4. Under Principer väljer du Identity Experience Framework.
  5. Välj Överför anpassad princip och ladda sedan upp de två principfilerna som du ändrade i följande ordning: tilläggsprincipen, till exempel TrustFrameworkExtensions.xml, och sedan den förlitande partprincipen, till exempel SignUpSignIn.xml.

Testa din anpassade princip

  1. Välj din princip för förlitande part, till exempel B2C_1A_signup_signin.
  2. För Program väljer du ett webbprogram som du registrerade tidigare. Svars-URL :en ska visa https://jwt.ms.
  3. Välj knappen Kör nu.
  4. På registrerings- eller inloggningssidan väljer du SwissID för att logga in med SwissID-kontot.

Om inloggningsprocessen lyckas omdirigeras webbläsaren till https://jwt.ms, som visar innehållet i token som returneras av Azure AD B2C.

Flytta till produktion

SwissID IdP tillhandahåller miljöer för förproduktion och produktion. Konfigurationen som beskrivs i den här artikeln använder förproduktionsmiljön. Följ dessa steg för att använda produktionsmiljön:

  1. Kontakta SwissId-supporten för en produktionsmiljö.
  2. Uppdatera användarflödet eller den anpassade principen med URI:n för den välkända konfigurationsslutpunkten.

Nästa steg

Lär dig hur du skickar SwissID-token till ditt program.