Azure Active Directory B2C'de kaynak sahibi parola kimlik bilgileri akışı ayarlama

Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.

Azure Active Directory B2C'de (Azure AD B2C), kaynak sahibi parola kimlik bilgileri (ROPC) akışı OAuth standart kimlik doğrulama akışıdır. Bu akışta bağlı taraf olarak da bilinen bir uygulama belirteçler için geçerli kimlik bilgilerini değiştirir. Kimlik bilgileri bir kullanıcı kimliği ve parola içerir. Döndürülen belirteçler bir kimlik belirteci, erişim belirteci ve yenileme belirtecidir.

Uyarı

ROPC akışını kullanmamanızı öneririz. Çoğu senaryoda daha güvenli alternatifler kullanılabilir ve önerilir. Bu akış, uygulamaya çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskler taşır. Bu akışı yalnızca diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

ROPC akış notları

Azure Active Directory B2C'de (Azure AD B2C) aşağıdaki seçenekler desteklenir:

  • Yerel İstemci: Kimlik doğrulaması sırasında kullanıcı etkileşimi, kod kullanıcı tarafı cihazda çalıştırıldığında gerçekleşir. Cihaz, Android ve iOS gibi yerel bir işletim sisteminde çalışan bir mobil uygulama olabilir.
  • Genel istemci akışı: API çağrısında yalnızca bir uygulama tarafından toplanan kullanıcı kimlik bilgileri gönderilir. Uygulamanın kimlik bilgileri gönderilmez.
  • Yeni talep ekleme: Kimlik belirteci içeriği, yeni talep eklemek için değiştirilebilir.

Aşağıdaki akışlar desteklenmez:

  • Sunucudan sunucuya: Kimlik koruma sistemi, etkileşimin bir parçası olarak arayandan (yerel istemci) toplanan güvenilir bir IP adresine ihtiyaç duyar. Sunucu tarafı API çağrısında yalnızca sunucunun IP adresi kullanılır. Başarısız kimlik doğrulamalarının dinamik eşiği aşılırsa, kimlik koruma sistemi saldırgan olarak yinelenen bir IP adresi tanımlayabilir.
  • Gizli istemci akışı: Uygulama istemci kimliği doğrulanır, ancak uygulama gizli dizisi doğrulanmaz.

ROPC akışını kullanırken aşağıdakileri göz önünde bulundurun:

  • Kullanıcı etkileşimi gerektiren kimlik doğrulama akışında herhangi bir kesinti olduğunda ROPC çalışmaz. Örneğin, parolanın süresi dolduğunda veya değiştirilmesi gerektiğinde, çok faktörlü kimlik doğrulaması gerekir veya oturum açma sırasında daha fazla bilgi toplanması gerektiğinde (örneğin, kullanıcı onayı).
  • ROPC yalnızca yerel hesapları destekler. Kullanıcılar Microsoft, Google+, Twitter, AD-FS veya Facebook gibi federasyon kimlik sağlayıcılarıyla oturum açamaz.
  • Oturumumu açık tutma (KMSI) dahil olmak üzere Oturum Yönetimi geçerli değildir.

Bir uygulamayı kaydetme

Azure AD B2C kiracınıza uygulama kaydetmek için yeni birleşik Uygulama kaydı deneyimimizi veya eski Uygulamalar (Eski) deneyimimizi kullanabilirsiniz. Yeni deneyim hakkında daha fazla bilgi edinin.

  1. Azure Portal oturum açın.
  2. Azure AD B2C kiracınızı içeren dizini kullandığınızdan emin olun:
    1. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
    2. Portal ayarlarında | Dizinler + abonelikler sayfası, Dizin adı listesinde Azure AD B2C dizininizi bulun ve ardından Değiştir'i seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin
  4. Uygulama kayıtları'ı ve ardından Yeni kayıt'ı seçin.
  5. Uygulama için bir Ad girin. Örneğin, ROPC_Auth_app.
  6. Diğer değerleri olduğu gibi bırakın ve kaydet'i seçin.
  7. Daha sonraki bir adımda kullanmak üzere Uygulama (istemci) kimliğini kaydedin.
  8. Yönet'in altında Kimlik Doğrulama'yı seçin.
  9. Yeni deneyimi deneyin (gösteriliyorsa) seçeneğini belirleyin.
  10. Gelişmiş ayarlar'ın altında ve Aşağıdaki mobil ve masaüstü akışlarını etkinleştir bölümünde Evet'i seçerek uygulamayı genel istemci olarak değerlendirin. RoPC akışı için bu ayar gereklidir.
  11. Kaydet'i seçin.
  12. Bildirim düzenleyicisini açmak için soldaki menüde Bildirim'i seçin.
  13. oauth2AllowImplicitFlow özniteliğini true olarak ayarlayın:
    "oauth2AllowImplicitFlow": true,
    
  14. Kaydet'i seçin.

Kaynak sahibi kullanıcı akışı oluşturma

  1. Azure portalında Azure AD B2C kiracınızın genel yöneticisi olarak oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. Kullanıcı akışları'yı ve ardından Yeni kullanıcı akışı'yı seçin.
  5. Kaynak sahibi parola kimlik bilgilerini (ROPC) kullanarak oturum açın'ı seçin.
  6. Sürüm altında Önizleme'nin seçili olduğundan emin olun ve oluştur'u seçin.
  7. Kullanıcı akışı için ROPC_Auth gibi bir ad sağlayın.
  8. Uygulama talepleri'nin altında Daha fazla göster'i seçin.
  9. Uygulamanız için ihtiyacınız olan Görünen Ad, E-posta Adresi ve Kimlik Sağlayıcısı gibi uygulama taleplerini seçin.
  10. Tamam'ı ve ardından Oluştur'u seçin.

Önkoşul

Bunu yapmadıysanız, Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.

Kaynak sahibi ilkesi oluşturma

  1. TrustFrameworkExtensions.xml dosyasını açın.

  2. Henüz yoksa, Bir ClaimsSchema öğesini ve onun alt öğelerini BuildingBlocks öğesinin altındaki ilk öğe olarak ekleyin:

    <ClaimsSchema>
      <ClaimType Id="logonIdentifier">
        <DisplayName>User name or email address that the user can use to sign in</DisplayName>
        <DataType>string</DataType>
      </ClaimType>
      <ClaimType Id="resource">
        <DisplayName>The resource parameter passes to the ROPC endpoint</DisplayName>
        <DataType>string</DataType>
      </ClaimType>
      <ClaimType Id="refreshTokenIssuedOnDateTime">
        <DisplayName>An internal parameter used to determine whether the user should be permitted to authenticate again using their existing refresh token.</DisplayName>
        <DataType>string</DataType>
      </ClaimType>
      <ClaimType Id="refreshTokensValidFromDateTime">
        <DisplayName>An internal parameter used to determine whether the user should be permitted to authenticate again using their existing refresh token.</DisplayName>
        <DataType>string</DataType>
      </ClaimType>
    </ClaimsSchema>
    
  3. ClaimsSchema'nın ardından, BuildingBlocks öğesine claimsTransformations öğesini ve alt öğelerini ekleyin:

    <ClaimsTransformations>
      <ClaimsTransformation Id="CreateSubjectClaimFromObjectID" TransformationMethod="CreateStringClaim">
        <InputParameters>
          <InputParameter Id="value" DataType="string" Value="Not supported currently. Use oid claim." />
        </InputParameters>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="sub" TransformationClaimType="createdClaim" />
        </OutputClaims>
      </ClaimsTransformation>
    
      <ClaimsTransformation Id="AssertRefreshTokenIssuedLaterThanValidFromDate" TransformationMethod="AssertDateTimeIsGreaterThan">
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="refreshTokenIssuedOnDateTime" TransformationClaimType="leftOperand" />
          <InputClaim ClaimTypeReferenceId="refreshTokensValidFromDateTime" TransformationClaimType="rightOperand" />
        </InputClaims>
        <InputParameters>
          <InputParameter Id="AssertIfEqualTo" DataType="boolean" Value="false" />
          <InputParameter Id="AssertIfRightOperandIsNotPresent" DataType="boolean" Value="true" />
        </InputParameters>
      </ClaimsTransformation>
    </ClaimsTransformations>
    
  4. DisplayName Local Account SignIn içeren ClaimsProvider öğesini bulun ve aşağıdaki teknik profili ekleyin:

    <TechnicalProfile Id="ResourceOwnerPasswordCredentials-OAUTH2">
      <DisplayName>Local Account SignIn</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <Metadata>
        <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">We can't seem to find your account</Item>
        <Item Key="UserMessageIfInvalidPassword">Your password is incorrect</Item>
        <Item Key="UserMessageIfOldPasswordUsed">Looks like you used an old password</Item>
        <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
        <Item Key="ValidTokenIssuerPrefixes">https://sts.windows.net/</Item>
        <Item Key="METADATA">https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration</Item>
        <Item Key="authorization_endpoint">https://login.microsoftonline.com/{tenant}/oauth2/token</Item>
        <Item Key="response_types">id_token</Item>
        <Item Key="response_mode">query</Item>
        <Item Key="scope">email openid</Item>
        <Item Key="grant_type">password</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="logonIdentifier" PartnerClaimType="username" Required="true" DefaultValue="{OIDC:Username}"/>
        <InputClaim ClaimTypeReferenceId="password" Required="true" DefaultValue="{OIDC:Password}" />
        <InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="password" />
        <InputClaim ClaimTypeReferenceId="scope" DefaultValue="openid" />
        <InputClaim ClaimTypeReferenceId="nca" PartnerClaimType="nca" DefaultValue="1" />
        <InputClaim ClaimTypeReferenceId="client_id" DefaultValue="ProxyIdentityExperienceFrameworkAppId" />
        <InputClaim ClaimTypeReferenceId="resource_id" PartnerClaimType="resource" DefaultValue="IdentityExperienceFrameworkAppId" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid" />
        <OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="upn" />
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromObjectID" />
      </OutputClaimsTransformations>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>
    

    client_id DefaultValue değerini önkoşul öğreticisinde oluşturduğunuz ProxyIdentityExperienceFramework uygulamasının Uygulama Kimliği ile değiştirin. Ardından resource_id DefaultValue değerini önkoşul öğreticisinde oluşturduğunuz IdentityExperienceFramework uygulamasının Uygulama Kimliği ile değiştirin.

  5. ClaimsProviders öğesine teknik profilleriyle aşağıdaki ClaimsProvider öğelerini ekleyin:

    <ClaimsProvider>
      <DisplayName>Azure Active Directory</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AAD-UserReadUsingObjectId-CheckRefreshTokenDate">
          <Metadata>
            <Item Key="Operation">Read</Item>
            <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="refreshTokensValidFromDateTime" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="AssertRefreshTokenIssuedLaterThanValidFromDate" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromObjectID" />
          </OutputClaimsTransformations>
          <IncludeTechnicalProfile ReferenceId="AAD-Common" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
    <ClaimsProvider>
      <DisplayName>Session Management</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SM-RefreshTokenReadAndSetup">
          <DisplayName>Trustframework Policy Engine Refresh Token Setup Technical Profile</DisplayName>
          <Protocol Name="None" />
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="refreshTokenIssuedOnDateTime" />
          </OutputClaims>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
    <ClaimsProvider>
      <DisplayName>Token Issuer</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="JwtIssuer">
          <Metadata>
            <!-- Point to the redeem refresh token user journey-->
            <Item Key="RefreshTokenUserJourneyId">ResourceOwnerPasswordCredentials-RedeemRefreshToken</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  6. TrustFrameworkPolicy öğesine bir UserJourneys öğesi ve alt öğeleri ekleyin:

    <UserJourney Id="ResourceOwnerPasswordCredentials">
      <PreserveOriginalAssertion>false</PreserveOriginalAssertion>
      <OrchestrationSteps>
        <OrchestrationStep Order="1" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="ResourceOwnerFlow" TechnicalProfileReferenceId="ResourceOwnerPasswordCredentials-OAUTH2" />
          </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="2" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
          </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
      </OrchestrationSteps>
    </UserJourney>
    <UserJourney Id="ResourceOwnerPasswordCredentials-RedeemRefreshToken">
      <PreserveOriginalAssertion>false</PreserveOriginalAssertion>
      <OrchestrationSteps>
        <OrchestrationStep Order="1" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="RefreshTokenSetupExchange" TechnicalProfileReferenceId="SM-RefreshTokenReadAndSetup" />
          </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="2" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="CheckRefreshTokenDateFromAadExchange" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId-CheckRefreshTokenDate" />
          </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
      </OrchestrationSteps>
    </UserJourney>
    
  7. Azure AD B2C kiracınızdaki Özel İlkeler sayfasında İlkeyi Karşıya Yükle'yi seçin.

  8. Varsa ilkenin üzerine yaz'ı etkinleştirin ve TrustFrameworkExtensions.xml dosyasına göz atın ve seçin.

  9. Yükle'yi seçin.

Bağlı olan taraf dosyası oluşturma

Ardından, oluşturduğunuz kullanıcı yolculuğunu başlatan bağlı olan taraf dosyasını güncelleştirin:

  1. Çalışma dizininizde SignUpOrSignin.xml dosyasının bir kopyasını oluşturun ve ROPC_Auth.xml olarak yeniden adlandırın.

  2. Yeni dosyayı açın ve TrustFrameworkPolicy için PolicyId özniteliğinin değerini benzersiz bir değerle değiştirin. İlke kimliği, ilkenizin adıdır. Örneğin, B2C_1A_ROPC_Auth.

  3. DefaultUserJourney içindeki ReferenceId özniteliğinin değerini olarak ResourceOwnerPasswordCredentialsdeğiştirin.

  4. OutputClaims öğesini yalnızca aşağıdaki talepleri içerecek şekilde değiştirin:

    <OutputClaim ClaimTypeReferenceId="sub" />
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="displayName" DefaultValue="" />
    <OutputClaim ClaimTypeReferenceId="givenName" DefaultValue="" />
    <OutputClaim ClaimTypeReferenceId="surname" DefaultValue="" />
    
  5. Azure AD B2C kiracınızdaki Özel İlkeler sayfasında İlkeyi Karşıya Yükle'yi seçin.

  6. varsa ilkenin üzerine yaz'ı etkinleştirin ve ardından ROPC_Auth.xml dosyasına gidip seçin.

  7. Yükle'yi seçin.

ROPC akışını test edin

Bir API çağrısı oluşturmak için sık kullandığınız API geliştirme uygulamasını kullanın ve ilkenizde hata ayıklamak için yanıtı gözden geçirin. POST isteğinin gövdesi olarak aşağıdaki bilgilerle bu örneğe benzer bir çağrı oluşturun:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_ROPC_Auth/oauth2/v2.0/token

  • değerini Azure AD B2C kiracınızın adıyla değiştirin <tenant-name> .
  • değerini kaynak sahibi parola kimlik bilgileri ilkenizin tam adıyla değiştirin B2C_1A_ROPC_Auth .
Anahtar Değer
username user-account
password password1
grant_type password
kapsam openid application-id offline_access
client_id application-id
response_type belirteç id_token
  • değerini kiracınızdaki bir kullanıcı hesabının adıyla değiştirin user-account .
  • yerine password1 kullanıcı hesabının parolasını yazın.
  • değerini ROPC_Auth_app kaydındaki Uygulama Kimliği ile değiştirinapplication-id.
  • Yenileme belirteci almak istiyorsanız Offline_access isteğe bağlıdır.

Gerçek POST isteği aşağıdaki örneğe benzer:

POST /<tenant-name>.onmicrosoft.com/B2C_1A_ROPC_Auth/oauth2/v2.0/token HTTP/1.1
Host: <tenant-name>.b2clogin.com
Content-Type: application/x-www-form-urlencoded

username=contosouser.outlook.com.ws&password=Passxword1&grant_type=password&scope=openid+bef22d56-552f-4a5b-b90a-1988a7d634ce+offline_access&client_id=bef22d56-552f-4a5b-b90a-1988a7d634ce&response_type=token+id_token

Çevrimdışı erişim ile başarılı bir yanıt aşağıdaki örneğe benzer:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik9YQjNhdTNScWhUQWN6R0RWZDM5djNpTmlyTWhqN2wxMjIySnh6TmgwRlki...",
    "token_type": "Bearer",
    "expires_in": "3600",
    "refresh_token": "eyJraWQiOiJacW9pQlp2TW5pYVc2MUY0TnlfR3REVk1EVFBLbUJLb0FUcWQ1ZWFja1hBIiwidmVyIjoiMS4wIiwiemlwIjoiRGVmbGF0ZSIsInNlciI6Ij...",
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik9YQjNhdTNScWhUQWN6R0RWZDM5djNpTmlyTWhqN2wxMjIySnh6TmgwRlki..."
}

Yenileme belirtecini kullanma

Burada gösterilen gibi bir POST çağrısı oluşturma. Aşağıdaki tabloda yer alan bilgileri isteğin gövdesi olarak kullanın:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_ROPC_Auth/oauth2/v2.0/token

  • değerini Azure AD B2C kiracınızın adıyla değiştirin <tenant-name> .
  • değerini kaynak sahibi parola kimlik bilgileri ilkenizin tam adıyla değiştirin B2C_1A_ROPC_Auth .
Anahtar Değer
grant_type refresh_token
response_type id_token
client_id application-id
kaynak application-id
refresh_token refresh-token
  • değerini ROPC_Auth_app kaydındaki Uygulama Kimliği ile değiştirinapplication-id.
  • değerini önceki yanıtta geri gönderilen refresh_token ile değiştirinrefresh-token.

Başarılı bir yanıt aşağıdaki örneğe benzer:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhT...",
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQn...",
    "token_type": "Bearer",
    "not_before": 1533672990,
    "expires_in": 3600,
    "expires_on": 1533676590,
    "resource": "bef2222d56-552f-4a5b-b90a-1988a7d634c3",
    "id_token_expires_in": 3600,
    "profile_info": "eyJ2ZXIiOiIxLjAiLCJ0aWQiOiI1MTZmYzA2NS1mZjM2LTRiOTMtYWE1YS1kNmVlZGE3Y2JhYzgiLCJzdWIiOm51bGwsIm5hbWUiOiJEYXZpZE11IiwicHJlZmVycmVkX3VzZXJuYW1lIjpudWxsLCJpZHAiOiJMb2NhbEFjY291bnQifQ",
    "refresh_token": "eyJraWQiOiJjcGltY29yZV8wOTI1MjAxNSIsInZlciI6IjEuMCIsInppcCI6IkRlZmxhdGUiLCJzZXIiOiIxLjAi...",
    "refresh_token_expires_in": 1209600
}

Sorun giderme

Sağlanan uygulama 'OAuth' Örtük akışına izin verecek şekilde yapılandırılmamış

  • Belirti - ROPC akışını çalıştırır ve şu iletiyi alırsınız: AADB2C90057: Sağlanan uygulama 'OAuth' Örtük akışına izin verecek şekilde yapılandırılmamış.
  • Olası nedenler - Uygulamanız için örtük akışa izin verilmez.
  • Çözüm: Azure AD B2C'de uygulama kaydınızı oluştururken uygulama bildirimini el ile düzenlemeniz ve özelliğinin oauth2AllowImplicitFlow değerini olarak trueayarlamanız gerekir. Özelliği yapılandırdıktan sonra, değişikliğin oauth2AllowImplicitFlow etkilenmesi birkaç dakika (genellikle beşten fazla değildir) sürebilir.

Yerel SDK veya Uygulama Kimlik Doğrulaması kullanma

Azure AD B2C, genel istemci kaynağı sahibi parola kimlik bilgileri için OAuth 2.0 standartlarını karşılar ve çoğu istemci SDK'sıyla uyumlu olmalıdır. En son bilgiler için bkz. OAuth 2.0 için Yerel Uygulama SDK'sı ve modern en iyi yöntemleri uygulama Bağlan OpenID.

Sonraki adımlar

GitHub'dan , Android ve iOS için Azure AD B2C ile kullanılmak üzere yapılandırılmış çalışma örneklerini indirin.