Konfigurera registrering och inloggning med ett Apple-ID med 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.

Kommentar

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

Förutsättningar

Skapa ett Apple ID-program

Om du vill aktivera inloggning för användare med ett Apple-ID i Azure Active Directory B2C (Azure AD B2C) måste du skapa ett program i https://developer.apple.com. Mer information finns i Logga in med Apple. Om du inte redan har ett Apple-utvecklarkonto kan du registrera dig på Apple Developer Program.

  1. Logga in på Apple Developer Portal med dina kontoautentiseringsuppgifter.
  2. På menyn väljer du Certifikat, ID:t, & Profiler och sedan (+).
  3. För Registrera en ny identifierare väljer du App-ID:n och sedan Fortsätt.
  4. För Välj en typ väljer du App och sedan Fortsätt.
  5. För Registrera ett app-ID:
    1. Ange en beskrivning
    2. Ange paket-ID: t.excom.contoso.azure-ad-b2c. .
    3. För Funktioner väljer du Logga in med Apple i listan över funktioner.
    4. Anteckna ditt team-ID (app-ID-prefix) från det här steget. Du behöver det senare.
    5. Välj Fortsätt och sedan Registrera.
  6. På menyn väljer du Certifikat, ID:t, & Profiler och sedan (+).
  7. För Registrera en ny identifierare väljer du Tjänste-ID :n och sedan Fortsätt.
  8. För Registrera ett tjänst-ID:
    1. Ange en beskrivning. Beskrivningen visas för användaren på medgivandeskärmen.
    2. Ange identifieraren, till exempel com.consoto.azure-ad-b2c-service. Anteckna din tjänst-ID-identifierare . Identifieraren är ditt klient-ID för OpenID-Anslut flödet.
    3. Välj Fortsätt och välj sedan Registrera.
  9. Från Identifierare väljer du den identifierare som du skapade.
  10. Välj Logga in med Apple och välj sedan Konfigurera.
    1. Välj det primära app-ID som du vill konfigurera Logga in med Apple med.
    2. I Domäner och underdomäner anger du your-tenant-name.b2clogin.com. Ersätt namnet på din klientorganisation med namnet på din klientorganisation. Om du använder en anpassad domän anger du https://your-domain-name.
    3. I Retur-URL:er anger du 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. Retur-URL:en måste vara i alla gemener.
    4. Välj Nästa och sedan Klar.
    5. När popup-fönstret är stängt väljer du Fortsätt och sedan Spara.

Skapa en Apple-klienthemlighet

  1. På menyn i Apple Developer-portalen väljer du Nycklar och sedan (+).
  2. För Registrera en ny nyckel:
    1. Ange ett nyckelnamn.
    2. Välj Logga in med Apple och välj sedan Konfigurera.
    3. För primärt app-ID väljer du den app som du skapade tidigare och väljer Spara.
    4. Välj Konfigurera och välj sedan Registrera för att slutföra nyckelregistreringsprocessen. Anteckna nyckel-ID :t. Den här nyckeln krävs när du konfigurerar användarflöden.
  3. För Ladda ned din nyckel väljer du Ladda ned för att ladda ned en .p8-fil som innehåller din nyckel.

Konfigurera Apple som en identitetsprovider

  1. Logga in på Azure-portalen som global administratör för din Azure AD B2C-klientorganisation.
  2. 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.
  3. Under Azure-tjänster väljer du Azure AD B2C. Eller använd sökrutan för att hitta och välja Azure AD B2C.
  4. Välj Identitetsprovidrar och välj sedan Apple.
  5. Som Namn anger du Logga in med Apple.
  6. Ange Apple Developer ID (Team ID).
  7. Ange Apple-tjänst-ID (klient-ID).
  8. Ange Apple-nyckel-ID från steg Skapa en Apple-klienthemlighet.
  9. Välj och ladda upp Apple-certifikatdata.
  10. Välj Spara.

Viktigt!

  • Logga in med Apple kräver att administratören förnyar sin klienthemlighet var sjätte månad.
  • Apple-klienthemligheten förnyas automatiskt när den upphör att gälla. Om du behöver förnya hemligheten manuellt öppnar du Azure AD B2C i Azure-portalen, går till Identitetsprovidrar>Apple och väljer Förnya hemlighet.
  • Följ riktlinjerna för hur du erbjuder knappen Logga in med Apple.

Lägga till Apple-identitetsprovidern i ett användarflöde

Om du vill göra det möjligt för användare att logga in med ett Apple-ID måste du lägga till Apple-identitetsprovidern i ett användarflöde. Inloggning med Apple kan endast konfigureras för den rekommenderade versionen av användarflöden. Så här lägger du till Apple-identitetsprovidern i ett användarflöde:

  1. I din Azure AD B2C-klient väljer du Användarflöden.
  2. Välj ett användarflöde som du vill lägga till Apple-identitetsprovidern för.
  3. Under Sociala identitetsprovidrar väljer du Apple.
  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 Apple för att logga in med Apple-ID.

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

Signera klienthemligheten

Använd .p8-filen som du laddade ned tidigare för att signera klienthemligheten till en JWT-token. Det finns många bibliotek som kan skapa och signera JWT åt dig. Använd Den Azure-funktion som skapar en token åt dig.

  1. Skapa en Azure-funktion.

  2. Under Utvecklare väljer du Kod + Test.

  3. Kopiera innehållet i filen run.csx och klistra in det i redigeraren.

  4. Välj Spara.

  5. Gör en HTTP-begäran POST och ange följande information:

    • appleTeamId: Ditt Apple Developer Team-ID
    • appleServiceId: Apple Service ID (klient-ID)
    • appleKeyId: Nyckel-ID på 10 siffror som lagras i JWT-huvudet (krävs av Apple)
    • p8key: PEM-formatnyckeln. Du kan hämta detta genom att öppna .p8-filen i en textredigerare och kopiera allt mellan -----BEGIN PRIVATE KEY----- och -----END PRIVATE KEY----- utan radbrytningar.

Följande json är ett exempel på ett anrop till Azure-funktionen:

{
    "appleTeamId": "ABC123DEFG",
    "appleServiceId": "com.yourcompany.app1",
    "appleKeyId": "URKEYID001",
    "p8key": "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg+s07NiAcuGEu8rxsJBG7ttupF6FRe3bXdHxEipuyK82gCgYIKoZIzj0DAQehRANCAAQnR1W/KbbaihTQayXH3tuAXA8Aei7u7Ij5OdRy6clOgBeRBPy1miObKYVx3ki1msjjG2uGqRbrc1LvjLHINWRD"
}

Azure-funktionen svarar med en korrekt formaterad och signerad JWT-klienthemlighet i ett svar, till exempel:

{
    "token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20ueW91cmNvbXBhbnkuYXBwMSIsIm5iZiI6MTU2MDI2OTY3NSwiZXhwIjoxNTYwMzU2MDc1LCJpc3MiOiJBQkMxMjNERUZHIiwiYXVkIjoiaHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbSJ9.Dt9qA9NmJ_mk6tOqbsuTmfBrQLFqc9BnSVKR6A-bf9TcTft2XmhWaVODr7Q9w1PP3QOYShFXAnNql5OdNebB4g"
}

Skapa en principnyckel

Du måste lagra klienthemligheten som du tidigare registrerade i din Azure AD B2C-klientorganisation.

  1. Logga in på Azure-portalen.
  2. 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.
  3. Under Azure-tjänster väljer du Azure AD B2C. Eller använd sökrutan för att hitta och välja 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 Manuell.
  7. Ange ett Namn för principnyckeln. Till exempel "AppleSecret". Prefixet "B2C_1A_" läggs automatiskt till i namnet på din nyckel.
  8. I Hemlighet anger du värdet för en token som returneras av Azure-funktionen (en JWT-token).
  9. För Nyckelanvändning väljer du Signatur.
  10. Välj Skapa.

Viktigt!

  • Logga in med Apple kräver att administratören förnyar sin klienthemlighet var sjätte månad.
  • Du måste förnya Apple-klienthemligheten manuellt om den upphör att gälla och lagra det nya värdet i principnyckeln.
  • Vi rekommenderar att du anger en egen påminnelse inom 6 månader för att generera en ny klienthemlighet.
  • Följ riktlinjerna för hur du erbjuder knappen Logga in med Apple.

Konfigurera Apple som en identitetsprovider

För att göra det möjligt för användare att logga in med ett Apple-ID 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 autentiseras.

Du kan definiera ett Apple-ID 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>apple.com</Domain>
      <DisplayName>Apple</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Apple-OIDC">
          <DisplayName>Sign in with Apple</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">apple</Item>
            <Item Key="authorization_endpoint">https://appleid.apple.com/auth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://appleid.apple.com/auth/token</Item>
            <Item Key="JWKS">https://appleid.apple.com/auth/keys</Item>
            <Item Key="issuer">https://appleid.apple.com</Item>
            <Item Key="scope">name email openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="response_types">code</Item>
            <Item Key="external_user_identity_claim_id">sub</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="ReadBodyClaimsOnIdpRedirect">user.name.firstName user.name.lastName user.email</Item>
            <Item Key="client_id">You Apple ID</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AppleSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://appleid.apple.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="user.name.firstName"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="user.name.lastName"/>
            <OutputClaim ClaimTypeReferenceId="email" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Ange client_id till tjänstidentifieraren. Exempel: com.consoto.azure-ad-b2c-service

  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="AppleExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AppleExchange" TechnicalProfileReferenceId="Apple-OIDC" />
  </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 Apple för att logga in med Apple-ID.

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

Anpassa användargränssnittet

Följ riktlinjerna för hur du erbjuder Logga in med Apple. Apple har flera inloggningsknappar med Apple-knappar som du kan använda för att låta personer konfigurera ett konto och logga in. Om det behövs skapar du en anpassad knapp för att erbjuda Logga in med Apple. Lär dig hur du visar knappen Logga in med Apple.

Så här överensstämmer du med Riktlinjerna för Apples användargränssnitt: