Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.
In Azure Active Directory B2C (Azure AD B2C) ist der RoPC-Fluss (Resource Owner Password Credentials) ein OAuth-Standardauthentifizierungsfluss. In diesem Fluss wird eine Anwendung, die auch als vertrauende Seite bezeichnet wird, gültige Anmeldeinformationen für Token austauschen. Die Anmeldeinformationen umfassen eine Benutzer-ID und ein Kennwort. Die zurückgegebenen Token sind ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken.
Warnung
Es wird empfohlen, den ROPC-Fluss nicht zu verwenden. In den meisten Szenarien sind sicherere Alternativen verfügbar und empfohlen. Dieser Fluss erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Flow nur, wenn kein anderer Flow verfügbar ist, der mehr Sicherheit bietet.
ROPC-Flussnotizen
In Azure Active Directory B2C (Azure AD B2C) werden die folgenden Optionen unterstützt:
- Native Client: Die Benutzerinteraktion während der Authentifizierung erfolgt, wenn Code auf einem benutzerseitigen Gerät ausgeführt wird. Das Gerät kann eine mobile Anwendung sein, die in einem systemeigenen Betriebssystem ausgeführt wird, z. B. Android und iOS.
- Öffentlicher Clientablauf: Nur Benutzeranmeldeinformationen, die von einer Anwendung gesammelt werden, werden im API-Aufruf gesendet. Die Anmeldeinformationen der Anwendung werden nicht gesendet.
- Neue Ansprüche hinzufügen: Der Inhalt des ID-Tokens kann geändert werden, um neue Ansprüche hinzuzufügen.
Die folgenden Flüsse werden nicht unterstützt:
- Server-zu-Server: Das Identitätsschutzsystem benötigt eine zuverlässige IP-Adresse, die vom Aufrufer (dem nativen Client) als Teil der Interaktion gesammelt wird. In einem serverseitigen API-Aufruf wird nur die IP-Adresse des Servers verwendet. Wenn ein dynamischer Schwellenwert für fehlgeschlagene Authentifizierungen überschritten wird, kann das Identitätsschutzsystem eine wiederholte IP-Adresse als Angreifer identifizieren.
- Vertraulicher Clientfluss: Die Anwendungsclient-ID wird überprüft, der geheime Anwendungsschlüssel wird jedoch nicht überprüft.
Berücksichtigen Sie bei der Verwendung des ROPC-Flusses die folgenden Einschränkungen:
- ROPC funktioniert nicht, wenn eine Unterbrechung des Authentifizierungsflusses vorliegt, der eine Benutzerinteraktion erfordert. Wenn beispielsweise ein Kennwort abläuft oder geändert werden muss, ist eine mehrstufige Authentifizierung erforderlich oder wenn während der Anmeldung weitere Informationen erfasst werden müssen (z. B. Benutzerzustimmung).
- ROPC unterstützt nur lokale Konten. Benutzer können sich nicht mit Verbundidentitätsanbietern wie Microsoft, Google+, X, AD-FS oder Facebook anmelden.
- Die Sitzungsverwaltung, einschließlich Angemeldet bleiben, ist nicht anwendbar.
Registrieren einer Anwendung
Um eine Anwendung in Ihrem Azure AD B2C-Mandanten zu registrieren, können Sie unsere neue einheitlichen App-Registrierungserfahrung oder unsere Legacyanwendungen (Legacy) -Erfahrung verwenden. Erfahren Sie mehr über die neue Oberfläche.
- Melden Sie sich beim Azure-Portal an.
- Stellen Sie sicher, dass Sie das Verzeichnis verwenden, das Ihren Azure AD B2C-Mandanten enthält:
- Wählen Sie auf der Symbolleiste des Portals das Symbol Verzeichnisse und Abonnements aus.
- Suchen Sie auf der Seite Portaleinstellungen > Verzeichnisse und Abonnements das Azure AD B2C-Verzeichnis in der Liste Verzeichnisname, und klicken Sie dann auf Wechseln.
- Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie es aus.
- Wählen Sie App-Registrierungen aus, und wählen Sie dann Registrierung einer neuen Anwendung aus.
- Geben Sie einen Namen für die Anwendung ein. Beispiel: ROPC_Auth_app.
- Lassen Sie die anderen Werte unverändert, und wählen Sie dann "Registrieren" aus.
- Notieren Sie die Anwendungs-ID (Client-ID) für die Verwendung in einem späteren Schritt.
- Wählen Sie unter Verwalten die Option Authentifizierung aus.
- Wählen Sie Probieren Sie das neue Erlebnis aus (sofern angezeigt).
- Wählen Sie unter "Erweiterte Einstellungen" und im Abschnitt "Aktivieren der folgenden Mobilen und Desktopflüsse" die Option "Ja " aus, um die Anwendung als öffentlichen Client zu behandeln. Diese Einstellung ist für den ROPC-Fluss erforderlich.
- Wählen Sie Speichern aus.
- Wählen Sie im linken Menü "Manifest " aus, um den Manifest-Editor zu öffnen.
- Legen Sie das oauth2AllowImplicitFlow-Attribut auf "true" fest. Wenn das Attribut nicht vorhanden ist, fügen Sie es hinzu:
"oauth2AllowImplicitFlow": true, - Wählen Sie Speichern aus.
Erstellen eines Benutzerflows für Ressourcenbesitzende
- Melden Sie sich beim Azure-Portal als Administrator für den External ID-Benutzerablauf Ihres Azure AD B2C-Mandanten an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
- Wählen Sie Benutzerflüsse aus, und wählen Sie "Neuer Benutzerablauf" aus.
- Wählen Sie Mit Ressourcenbesitzer-Kennwortanmeldeinformationen (ROPC) anmelden aus.
- Vergewissern Sie sich unter "Version", dass "Vorschau" ausgewählt ist, und wählen Sie dann "Erstellen" aus.
- Geben Sie einen Namen für den Benutzerablauf an, z. B. ROPC_Auth.
- Wählen Sie unter Anwendungsansprüchen die Option "Mehr anzeigen" aus.
- Wählen Sie die Anwendungsansprüche aus, die Sie für Ihre Anwendung benötigen, z. B. Anzeigename, E-Mail-Adresse und Identitätsanbieter.
- Wählen Sie OK aus und dann Erstellen.
Voraussetzung
Wenn Sie dies nicht getan haben, erfahren Sie, wie Sie das benutzerdefinierte Richtlinienstartpaket in "Erste Schritte mit benutzerdefinierten Richtlinien in Active Directory B2C" verwenden.
Erstellen einer Ressourcenbesitzerrichtlinie
Öffnen Sie die dateiTrustFrameworkExtensions.xml .
Suchen Sie unter dem BuildingBlocks-Element nach dem ClaimsSchema-Element , und fügen Sie dann die folgenden Anspruchstypen hinzu:
<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>Fügen Sie nach ClaimsSchema dem BuildingBlocks-Element ein ClaimsTransformations-Element und dessen untergeordnete Elemente hinzu:
<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>Suchen Sie das ClaimsProvider-Element , das über einen DisplayName von
Local Account SignInverfügt, und fügen Sie folgendes technisches Profil hinzu:<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>Ersetzen Sie den Standardwert von client_id durch die Anwendungs-ID der ProxyIdentityExperienceFramework-Anwendung, die Sie im Erforderlichen Lernprogramm erstellt haben. Ersetzen Sie dann DefaultValue von resource_id durch die Anwendungs-ID der IdentityExperienceFramework Anwendung, die Sie auch im vorausgehenden Tutorial erstellt haben.
Fügen Sie dem ClaimsProviders-Element die folgenden ClaimsProvider-Elemente mit ihren technischen Profilen hinzu:
<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>Fügen Sie ein UserJourneys-Element und dessen untergeordnete Elemente zum TrustFrameworkPolicy-Element hinzu:
<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>Wählen Sie auf der Seite "Benutzerdefinierte Richtlinien " in Ihrem Azure AD B2C-Mandanten "Richtlinie hochladen" aus.
Aktivieren Sie das Überschreiben der Richtlinie, sofern sie vorhanden ist, und navigieren Sie dann zur TrustFrameworkExtensions.xml Datei, und wählen Sie sie aus.
Wählen Sie die Option Hochladen.
Erstellen einer Datei der vertrauenden Seite
Aktualisieren Sie als Nächstes die Datei der vertrauenden Seite, die den von Ihnen erstellten Benutzerablauf initiiert.
Erstellen Sie eine Kopie von SignUpOrSignin.xml Datei in Ihrem Arbeitsverzeichnis, und benennen Sie sie in ROPC_Auth.xmlum.
Öffnen Sie die neue Datei, und ändern Sie den Wert des PolicyId-Attributs für TrustFrameworkPolicy in einen eindeutigen Wert. Die Richtlinien-ID ist der Name Ihrer Richtlinie. Beispiel: B2C_1A_ROPC_Auth.
Ändern Sie den Wert des ReferenceId-Attributs in DefaultUserJourney in
ResourceOwnerPasswordCredentials.Ändern Sie das OutputClaims-Element so, dass es nur die folgenden Ansprüche enthält:
<OutputClaim ClaimTypeReferenceId="sub" /> <OutputClaim ClaimTypeReferenceId="objectId" /> <OutputClaim ClaimTypeReferenceId="displayName" DefaultValue="" /> <OutputClaim ClaimTypeReferenceId="givenName" DefaultValue="" /> <OutputClaim ClaimTypeReferenceId="surname" DefaultValue="" />Wählen Sie auf der Seite "Benutzerdefinierte Richtlinien " in Ihrem Azure AD B2C-Mandanten "Richtlinie hochladen" aus.
Aktivieren Sie das Überschreiben der Richtlinie, sofern sie vorhanden ist, und navigieren Sie dann zur ROPC_Auth.xml Datei, und wählen Sie sie aus.
Wählen Sie die Option Hochladen.
Testen des ROPC-Flows
Verwenden Sie Ihre bevorzugte API-Entwicklungsanwendung, um einen API-Aufruf zu generieren, und überprüfen Sie die Antwort zum Debuggen Ihrer Richtlinie. Erstellen Sie einen Aufruf wie dieses Beispiel mit den folgenden Informationen als Textkörper der POST-Anforderung:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_ROPC_Auth/oauth2/v2.0/token
- Ersetzen Sie
<tenant-name>durch den Namen Ihres Azure AD B2C-Mandanten. - Ersetzen Sie
B2C_1A_ROPC_Authdurch den vollständigen Namen der Richtlinie für Kennwortanmeldeinformationen der Ressourcenbesitzerin bzw. des Ressourcenbesitzers.
| Schlüssel | Wert |
|---|---|
| Benutzername | user-account |
| Kennwort | password1 |
| Authentifizierungstyp (grant_type) | Kennwort |
| Umfang | OpenID-offline_access application-id |
| Kunden-ID | application-id |
| Antworttyp | Token-id_token |
- Ersetzen Sie
user-accountmit dem Namen eines Benutzerkontos in Ihrem Tenant. - Ersetzen Sie
password1durch das Kennwort des Benutzerkontos. - Ersetzen Sie
application-iddurch die Anwendungs-ID aus der ROPC_Auth_app-Registrierung. - Offline_access ist optional, wenn Sie ein Aktualisierungstoken empfangen möchten.
Die tatsächliche POST-Anforderung sieht wie im folgenden Beispiel aus:
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+00001111-aaaa-2222-bbbb-3333cccc4444+offline_access&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=token+id_token
Eine erfolgreiche Antwort mit Offlinezugriff sieht wie im folgenden Beispiel aus:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik9YQjNhdTNScWhUQWN6R0RWZDM5djNpTmlyTWhqN2wxMjIySnh6TmgwRlki...",
"token_type": "Bearer",
"expires_in": "3600",
"refresh_token": "eyJraWQiOiJacW9pQlp2TW5pYVc2MUY0TnlfR3REVk1EVFBLbUJLb0FUcWQ1ZWFja1hBIiwidmVyIjoiMS4wIiwiemlwIjoiRGVmbGF0ZSIsInNlciI6Ij...",
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik9YQjNhdTNScWhUQWN6R0RWZDM5djNpTmlyTWhqN2wxMjIySnh6TmgwRlki..."
}
Einlösen eines Aktualisierungstokens
Erstellen Sie einen POST-Aufruf wie die hier gezeigte. Verwenden Sie die Informationen in der folgenden Tabelle als Textkörper der Anforderung:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_ROPC_Auth/oauth2/v2.0/token
- Ersetzen Sie
<tenant-name>durch den Namen Ihres Azure AD B2C-Mandanten. - Ersetzen Sie
B2C_1A_ROPC_Authdurch den vollständigen Namen der Richtlinie für Kennwortanmeldeinformationen der Ressourcenbesitzerin bzw. des Ressourcenbesitzers.
| Schlüssel | Wert |
|---|---|
| Authentifizierungstyp (grant_type) | Aktualisierungstoken |
| Antworttyp | id_token (Identitäts-Token) |
| Kunden-ID | application-id |
| Ressource | application-id |
| Aktualisierungstoken | refresh-token |
- Ersetzen Sie
application-iddurch die Anwendungs-ID aus der ROPC_Auth_app-Registrierung. - Ersetzen Sie
refresh-tokenmit dem refresh_token, das in der vorherigen Antwort zurückgesendet wurde.
Eine erfolgreiche Antwort sieht wie im folgenden Beispiel aus:
{
"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
}
Problembehandlung
Die bereitgestellte Anwendung ist nicht so konfiguriert, dass der implizite OAuth-Fluss zugelassen wird.
- Symptom : Sie führen den ROPC-Fluss aus und erhalten die folgende Meldung: AADB2C90057: Die bereitgestellte Anwendung ist nicht konfiguriert, um den impliziten OAuth-Fluss zuzulassen.
- Mögliche Ursachen : Der implizite Fluss ist für Ihre Anwendung nicht zulässig.
-
Lösung: Beim Erstellen der App-Registrierung in Azure AD B2C müssen Sie das Anwendungsmanifest manuell bearbeiten und den Wert der
oauth2AllowImplicitFlowEigenschaft auftruefestlegen. Nachdem Sie dieoauth2AllowImplicitFlowEigenschaft konfiguriert haben, kann es einige Minuten dauern (in der Regel nicht mehr als fünf), bis die Änderung wirksam wird.
Verwenden Sie ein natives SDK oder App-Auth
Azure AD B2C erfüllt OAuth 2.0-Standards für Kennwortanmeldeinformationen für öffentliche Clientressourcenbesitzer und sollte mit den meisten Client-SDKs kompatibel sein. Die neuesten Informationen finden Sie unter Native App SDK für OAuth 2.0 und OpenID Connect, die moderne bewährte Methoden implementieren.