API-összekötő hozzáadása egy regisztrációs felhasználói folyamathoz
Mielőtt hozzákezdene, a Szabályzattípus kiválasztása választóval válassza ki a beállított szabályzat típusát. Az Azure Active Directory B2C két módszert kínál annak meghatározására, hogy a felhasználók hogyan használják az alkalmazásokat: előre definiált felhasználói folyamatokon vagy teljesen konfigurálható egyéni szabályzatokon keresztül. A cikkben szereplő lépések különbözőek az egyes metódusok esetében.
Fejlesztőként vagy informatikai rendszergazdaként API-összekötőkkel integrálhatja a regisztrációs felhasználói folyamatokat REST API-kkal a regisztrációs felület testreszabásához és a külső rendszerekkel való integrációhoz. Az útmutató végén létrehozhat egy Azure AD B2C-felhasználói folyamatot, amely a REST API-szolgáltatásokkal együttműködve módosítja a regisztrációs szolgáltatásokat.
Ebben a forgatókönyvben lehetővé tesszük, hogy a felhasználók hűségszámot adjanak meg az Azure AD B2C regisztrációs oldalán. A REST API ellenőrzi, hogy az e-mail és a hűségszám kombinációja promóciós kódra van-e leképezve. Ha a REST API talál egy promóciós kódot ehhez a felhasználóhoz, az visszakerül az Azure AD B2C-be. Végül a promóciós kód be lesz szúrva a használni kívánt alkalmazás jogkivonat-jogcímébe.
Az interakciót vezénylési lépésként is megtervezheti. Ez akkor megfelelő, ha a REST API nem ellenőrzi az adatokat a képernyőn, és mindig jogcímeket ad vissza. További információ : Útmutató: REST API-jogcímcserék integrálása az Azure AD B2C felhasználói folyamatában vezénylési lépésként.
Előfeltételek
- Hozzon létre egy felhasználói folyamatot , hogy a felhasználók regisztrálhassák és bejelentkezhessenek az alkalmazásba.
- Webalkalmazás regisztrálása.
- Az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben
- Webalkalmazás regisztrálása.
API-összekötő létrehozása
API-összekötő használatához először létre kell hoznia az API-összekötőt, majd engedélyeznie kell azt egy felhasználói folyamatban.
Jelentkezzen be az Azure Portalra.
Az Azure-szolgáltatások területen válassza az Azure AD B2C-t.
Válassza az API-összekötőket, majd az Új API-összekötőt.
Adja meg a hívás megjelenítendő nevét. Például: Felhasználói adatok ellenőrzése.
Adja meg az API-hívás végponti URL-címét .
Válassza ki a hitelesítés típusát , és konfigurálja a hitelesítési adatokat az API meghívásához. Megtudhatja, hogyan védheti meg az API-Csatlakozás ort.
Válassza a Mentés parancsot.
Az API-nak küldött kérés
Az API-összekötők HTTP POST-kérésként valósulnak meg, és a JSON-törzsben kulcs-érték párokként küldik el a felhasználói attribútumokat ('jogcímek'). Az attribútumok a Microsoft Graph felhasználói tulajdonságaihoz hasonlóan szerializálva vannak.
Példakérés
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"objectId": "11111111-0000-0000-0000-000000000000",
"givenName":"John",
"surname":"Smith",
"jobTitle":"Supplier",
"streetAddress":"1000 Microsoft Way",
"city":"Seattle",
"postalCode": "12345",
"state":"Washington",
"country":"United States",
"extension_<extensions-app-id>_CustomAttribute1": "custom attribute value",
"extension_<extensions-app-id>_CustomAttribute2": "custom attribute value",
"step": "<step-name>",
"client_id":"93fd07aa-333c-409d-955d-96008fd08dd9",
"ui_locales":"en-US"
}
A kérelemben csak az Azure AD B2C>felhasználói attribútumaiban felsorolt felhasználói tulajdonságok és egyéni attribútumok küldhetők el.
Az egyéni attribútumok a könyvtár extension_<extensions-app-id>_CustomAttribute formátumában találhatók. Az API-nak ugyanabban a szerializált formátumban kell jogcímeket fogadnia. Az egyéni attribútumokról további információt az Egyéni attribútumok definiálása az Azure AD B2C-ben című témakörben talál.
Emellett ezek a jogcímek általában minden kérésben el lesznek küldve:
- Felhasználói felület területi beállításai ('ui_locales') – A végfelhasználó területi beállításai az eszközükön konfigurálva. Ezt az API használhatja nemzetközi válaszok visszaadására.
- Lépés ('step') – A felhasználói folyamat azon lépése vagy pontja, amelyre az API-összekötőt meghívták. Az értékek a következők:
PostFederationSignup
- a "Regisztráció során identitásszolgáltatóval való összevonás után" szövegnek felel megPostAttributeCollection
- a következőnek felel meg: "A felhasználó létrehozása előtt"PreTokenIssuance
- a következőnek felel meg: "A jogkivonat elküldése előtt (előzetes verzió)". További információ erről a lépésről
- Ügyfélazonosító (client_id) – Annak
appId
az alkalmazásnak az értéke, amelyet a végfelhasználó hitelesít egy felhasználói folyamatban. Ez nem az erőforrásalkalmazás hozzáférési jogkivonataiban találhatóappId
. - E-mail-cím (e-mail) vagy identitások (identitások) – ezeket a jogcímeket az API felhasználhatja az alkalmazáshoz hitelesítő végfelhasználó azonosítására.
Fontos
Ha egy jogcím nem rendelkezik értékkel az API-végpont meghívásakor, a jogcím nem lesz elküldve az API-nak. Az API-t úgy kell megtervezni, hogy explicit módon ellenőrizze és kezelje azt az esetet, amikor egy jogcím nem szerepel a kérelemben.
Az API-összekötő engedélyezése egy felhasználói folyamatban
Az alábbi lépéseket követve hozzáadhat egy API-összekötőt egy regisztrációs felhasználói folyamathoz.
Jelentkezzen be az Azure Portalra.
Az Azure-szolgáltatások területen válassza az Azure AD B2C-t.
Válassza ki a Felhasználói folyamatok lehetőséget, majd válassza ki azt a felhasználói folyamatot, amelyhez hozzá szeretné adni az API-összekötőt.
Válassza ki az API-összekötőket, majd válassza ki a meghívni kívánt API-végpontokat a felhasználói folyamat következő lépéseiben:
- Identitásszolgáltatóval való összevonás után a regisztráció során
- A felhasználó létrehozása előtt
- A jogkivonat elküldése előtt (előzetes verzió)
Válassza a Mentés parancsot.
Ezek a lépések csak a regisztrációhoz és a bejelentkezéshez (ajánlott) és a regisztrációhoz (ajánlott) léteznek, de csak a felhasználói felület regisztrációs részére vonatkoznak.
Identitásszolgáltatóval való összevonás után a regisztráció során
A regisztrációs folyamat ezen lépésében egy API-összekötőt azonnal meghív a rendszer, miután a felhasználó hitelesítést végzett egy identitásszolgáltatóval (például Google, Facebook és Microsoft Entra ID). Ez a lépés megelőzi az attribútumgyűjtemény lapját, amely a felhasználó által a felhasználói attribútumok gyűjtésére szolgáló űrlap. Ez a lépés nem lesz meghívva, ha egy felhasználó helyi fiókkal regisztrál.
Ebben a lépésben az API-nak küldött példakérés
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"givenName":"John",
"surname":"Smith",
"step": "PostFederationSignup",
"client_id":"<guid>",
"ui_locales":"en-US"
}
Az API-nak küldött pontos jogcímek az identitásszolgáltató által megadott információktól függnek. Az "e-mail" mindig el lesz küldve.
A webes API várt választípusai ebben a lépésben
Amikor a webes API HTTP-kérést kap a Microsoft Entra-azonosítótól egy felhasználói folyamat során, a következő válaszokat tudja visszaadni:
- Folytatási válasz
- A válasz blokkolása
Folytatási válasz
A folytatási válasz azt jelzi, hogy a felhasználói folyamatnak a következő lépésre kell lépnie: az attribútumgyűjtemény oldalára.
A folytatási válaszban az API jogcímeket adhat vissza. Ha az API egy jogcímet ad vissza, a jogcím a következőt teszi:
- Előre kitölti a beviteli mezőt az attribútumgyűjtemény oldalán.
Tekintse meg a folytatásra adott válasz példáját.
A válasz blokkolása
A blokkoló válasz kilép a felhasználói folyamatból. Az API szándékosan kibocsáthatja a felhasználói folyamat folytatásának leállításához egy blokkoldal megjelenítésével a felhasználó számára. A blokklapon az userMessage
API által biztosítottak jelennek meg.
Tekintse meg a blokkoló válasz példáját.
A felhasználó létrehozása előtt
A regisztrációs folyamat ezen lépésében egy API-összekötőt hív meg az attribútumgyűjtemény lapja után, ha van ilyen. Ezt a lépést a rendszer mindig meghívja, mielőtt létrehoz egy felhasználói fiókot.
Ebben a lépésben az API-nak küldött példakérés
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"givenName":"John",
"surname":"Smith",
"jobTitle":"Supplier",
"streetAddress":"1000 Microsoft Way",
"city":"Seattle",
"postalCode": "12345",
"state":"Washington",
"country":"United States",
"extension_<extensions-app-id>_CustomAttribute1": "custom attribute value",
"extension_<extensions-app-id>_CustomAttribute2": "custom attribute value",
"step": "PostAttributeCollection",
"client_id":"93fd07aa-333c-409d-955d-96008fd08dd9",
"ui_locales":"en-US"
}
Az API-nak küldött jogcímek attól függenek, hogy a rendszer milyen adatokat gyűjt a felhasználótól, vagy amelyeket az identitásszolgáltató biztosít.
A webes API várt választípusai ebben a lépésben
Amikor a webes API HTTP-kérést kap a Microsoft Entra-azonosítótól egy felhasználói folyamat során, a következő válaszokat tudja visszaadni:
- Folytatási válasz
- A válasz blokkolása
- Érvényesítési válasz
Folytatási válasz
A folytatási válasz azt jelzi, hogy a felhasználói folyamatnak a következő lépésre kell haladnia: hozza létre a felhasználót a címtárban.
A folytatási válaszban az API jogcímeket adhat vissza. Ha az API egy jogcímet ad vissza, a jogcím a következőt teszi:
- Felülír minden olyan értéket, amelyet egy felhasználó már megadott az attribútumgyűjtemény oldalán.
Ha olyan jogcímeket szeretne írni a címtárba a regisztráció során, amelyeket nem kellene összegyűjteni a felhasználótól, akkor is ki kell választania a felhasználói folyamat Felhasználói attribútumai alatt található jogcímeket, amelyek alapértelmezés szerint értékeket kérnek a felhasználótól, de egyéni JavaScript vagy CSS használatával elrejtheti a bemeneti mezőket egy végfelhasználó elől.
Tekintse meg a folytatásra adott válasz példáját.
A válasz blokkolása
A blokkoló válasz kilép a felhasználói folyamatból. Az API szándékosan kibocsáthatja a felhasználói folyamat folytatásának leállításához egy blokkoldal megjelenítésével a felhasználó számára. A blokklapon az userMessage
API által biztosítottak jelennek meg.
Tekintse meg a blokkoló válasz példáját.
Érvényesítési hiba válasza
Amikor az API érvényesítési hibaválaszsal válaszol, a felhasználói folyamat az attribútumgyűjtemény oldalán marad, és megjelenik egy userMessage
a felhasználó számára. A felhasználó ezután szerkesztheti és újból elküldheti az űrlapot. Ez a választípus használható a bemeneti ellenőrzéshez.
Tekintse meg az érvényesítési hiba válaszának példáját.
A jogkivonat elküldése előtt (előzetes verzió)
Fontos
Az ebben a lépésben használt API-összekötők előzetes verzióban érhetők el. Az előzetes verziókkal kapcsolatos további információkért tekintse meg az online szolgáltatások termékfeltételeit.
Ebben a lépésben egy API-összekötőt hív meg a rendszer, amikor a bejelentkezések és a regisztrációk során jogkivonatot fog kibocsátani. Ehhez a lépéshez egy API-összekötő használható a jogkivonat külső forrásokból származó jogcímértékekkel való bővítéséhez.
Ebben a lépésben az API-nak küldött példakérés
POST <API-endpoint>
Content-type: application/json
{
"clientId": "231c70e8-8424-48ac-9b5d-5623b9e4ccf3",
"step": "PreTokenApplicationClaims",
"ui_locales":"en-US",
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"extension_<extensions-app-id>_CustomAttribute1": "custom attribute value",
"extension_<extensions-app-id>_CustomAttribute2": "custom attribute value",
}
Az API-nak küldött jogcímek a felhasználó számára meghatározott információktól függnek.
A webes API várt választípusai ebben a lépésben
Amikor a webes API HTTP-kérést kap a Microsoft Entra-azonosítótól egy felhasználói folyamat során, a következő válaszokat tudja visszaadni:
- Folytatási válasz
Folytatási válasz
A folytatási válasz azt jelzi, hogy a felhasználói folyamatnak a következő lépésig kell haladnia: adja ki a jogkivonatot.
A folytatási válaszban az API további jogcímeket adhat vissza. A jogkivonatban visszaadni kívánt API által visszaadott jogcímnek beépített jogcímnek vagy egyéni attribútumként kell definiálnia, és a felhasználói folyamat alkalmazásjogcímkonfigurációjában kell kiválasztani.
A jogkivonat jogcímértéke az API által visszaadott érték lesz, nem pedig a könyvtárban lévő érték. Az API-válasz nem írhat felül néhány jogcímértéket. Az API által visszaadható jogcímek megfelelnek a Felhasználói attribútumok csoportban található készletnek, kivéve email
a következőt: .
Tekintse meg a folytatásra adott válasz példáját.
Megjegyzés:
Az API meghívása csak kezdeti hitelesítés során történik. Ha frissítési jogkivonatokat használ az új hozzáférési vagy azonosító jogkivonatok csendes lekéréséhez, a jogkivonat tartalmazza a kezdeti hitelesítés során kiértékelt értékeket.
Példaválaszok
Példa folytatási válaszra
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "Continue",
"postalCode": "12349", // return claim
"extension_<extensions-app-id>_CustomAttribute": "value" // return claim
}
Paraméter | Type | Kötelező | Leírás |
---|---|---|---|
Verzió | Sztring | Igen | Az API verziója. |
action | Sztring | Igen | Az értéknek meg kell lennie Continue . |
<builtInUserAttribute> | <attribútumtípus> | Nem | A visszaadott értékek felülírhatják a felhasználótól gyűjtött értékeket. |
<extension_{extensions-app-id}_CustomAttribute> | <attribútumtípus> | Nem | A jogcímnek nem kell tartalmaznia _<extensions-app-id>_ , nem kötelező. A visszaadott értékek felülírhatják a felhasználótól gyűjtött értékeket. |
Példa blokkoló válaszra
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "There was a problem with your request. You are not able to sign up at this time. Please contact your system administrator",
}
Paraméter | Type | Kötelező | Leírás |
---|---|---|---|
Verzió | Sztring | Igen | Az API verziója. |
action | Sztring | Igen | Az értéknek ShowBlockPage |
userMessage | Sztring | Igen | A felhasználó számára megjelenítendő üzenet. |
Végfelhasználói élmény blokkoló válaszokkal
Példa egy érvényesítési hiba válaszára
HTTP/1.1 400 Bad Request
Content-type: application/json
{
"version": "1.0.0",
"status": 400,
"action": "ValidationError",
"userMessage": "Please enter a valid Postal Code."
}
Paraméter | Type | Kötelező | Leírás |
---|---|---|---|
Verzió | Sztring | Igen | Az API verziója. |
action | Sztring | Igen | Az értéknek meg kell lennie ValidationError . |
status | Egész szám / sztring | Igen | Értéknek 400 "400" vagy ValidationError-válasznak kell lennie. |
userMessage | Sztring | Igen | A felhasználó számára megjelenítendő üzenet. |
Megjegyzés:
A HTTP-állapotkódnak "400" értékűnek kell lennie a válasz törzsében lévő "status" érték mellett.
Végfelhasználói élmény érvényesítési hibaválaszsal
REST API-végpont előkészítése
Ehhez az útmutatóhoz rendelkeznie kell egy REST API-val, amely ellenőrzi, hogy egy e-mail-cím regisztrálva van-e a háttérrendszerben egy hűségazonosítóval. Ha regisztrálva van, a REST API-nak vissza kell adnia egy regisztrációs promóciós kódot, amelyet az ügyfél felhasználhat az alkalmazáson belüli áruk megvásárlására. Ellenkező esetben a REST API-nak egy HTTP 409-es hibaüzenetet kell visszaadnia: "A(z) "{loyalty ID}" hűségazonosító nincs társítva a(z) "{email}" e-mail-címmel."
Az alábbi JSON-kód bemutatja az Azure AD B2C által a REST API-végpontnak küldött adatokat.
{
"email": "User email address",
"language": "Current UI language",
"loyaltyId": "User loyalty ID"
}
Miután a REST API ellenőrzi az adatokat, egy HTTP 200 -nak (OK) kell visszaadnia a következő JSON-adatokat:
{
"promoCode": "24534"
}
Ha az érvényesítés nem sikerült, a REST API-nak egy HTTP 409 -es (Ütközés) értéket kell visszaadnia a userMessage
JSON-elemmel. Az IEF elvárja, hogy a userMessage
REST API visszatérjen. Ez a jogcím sztringként jelenik meg a felhasználónak, ha az érvényesítés sikertelen.
{
"version": "1.0.1",
"status": 409,
"userMessage": "LoyaltyId ID '1234' is not associated with 'david@contoso.com' email address."
}
A REST API-végpont beállítása a jelen cikk hatókörén kívül esik. Létrehoztunk egy Azure Functions-mintát . A teljes Azure-függvénykódot a GitHubon érheti el.
Jogcímek definiálása
A jogcímek ideiglenes adattárolást biztosítanak az Azure AD B2C-szabályzat végrehajtása során. A jogcímeket a jogcímséma szakaszon belül deklarálhatja.
- Nyissa meg a szabályzat bővítményfájlját. For example,
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
. - Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
- Keresse meg a ClaimsSchema elemet. Ha az elem nem létezik, adja hozzá.
- Adja hozzá a következő jogcímeket a ClaimsSchema elemhez.
<ClaimType Id="loyaltyId">
<DisplayName>Your loyalty ID</DisplayName>
<DataType>string</DataType>
<UserInputType>TextBox</UserInputType>
</ClaimType>
<ClaimType Id="promoCode">
<DisplayName>Your promo code</DisplayName>
<DataType>string</DataType>
<UserInputType>Paragraph</UserInputType>
</ClaimType>
<ClaimType Id="userLanguage">
<DisplayName>User UI language (used by REST API to return localized error messages)</DisplayName>
<DataType>string</DataType>
</ClaimType>
A RESTful API technikai profiljának hozzáadása
A Restful technikai profil támogatást nyújt a saját RESTful szolgáltatásba való kapcsolódáshoz. Az Azure AD B2C adatokat küld egy gyűjtemény RESTful szolgáltatásának InputClaims
, és visszavesz adatokat egy OutputClaims
gyűjteményből. Keresse meg a ClaimsProviders elemet, és adjon hozzá egy új jogcímszolgáltatót az alábbiak szerint:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-ValidateProfile">
<DisplayName>Check loyaltyId Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<!-- Set the ServiceUrl with your own REST API endpoint -->
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/ValidateProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<!-- Set AuthenticationType to Basic or ClientCertificate in production environments -->
<Item Key="AuthenticationType">None</Item>
<!-- REMOVE the following line in production environments -->
<Item Key="AllowInsecureAuthInProduction">true</Item>
</Metadata>
<InputClaims>
<!-- Claims sent to your REST API -->
<InputClaim ClaimTypeReferenceId="loyaltyId" />
<InputClaim ClaimTypeReferenceId="email" />
<InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
</InputClaims>
<OutputClaims>
<!-- Claims parsed from your REST API -->
<OutputClaim ClaimTypeReferenceId="promoCode" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Ebben a példában a rendszer a userLanguage
JSON hasznos adatainak megfelelően lang
elküldi a REST szolgáltatásnak. A jogcím értéke az userLanguage
aktuális felhasználói nyelv azonosítóját tartalmazza. További információ: jogcímfeloldó.
A RESTful API technikai profiljának konfigurálása
A REST API üzembe helyezése után állítsa be a technikai profil metaadatait a REST-ValidateProfile
saját REST API-jának megfelelően, beleértve a következőket:
- ServiceUrl. Állítsa be a REST API-végpont URL-címét.
- SendClaimsIn. Adja meg, hogy a bemeneti jogcímek hogyan legyenek elküldve a RESTful jogcímszolgáltatónak.
- AuthenticationType. Adja meg a RESTful jogcímszolgáltató által végrehajtott hitelesítés típusát.
- AllowInsecureAuthInProduction. Éles környezetben győződjön meg arról, hogy ezt a metaadatokat a következőre állítja:
true
További konfigurációkért tekintse meg a RESTful műszaki profil metaadatait .
A fenti AuthenticationType
megjegyzésekben AllowInsecureAuthInProduction
megadhatja, hogy milyen módosításokat kell végrehajtania, amikor éles környezetbe lép. Az éles RESTful API-k biztonságossá tételéről a Biztonságos RESTful API-k című témakörben olvashat.
A felhasználói bevitel ellenőrzése
A felhasználó hűségszámának a regisztráció során történő lekéréséhez engedélyeznie kell, hogy a felhasználó ezeket az adatokat a képernyőn adja meg. Adja hozzá a loyaltyId kimeneti jogcímet a regisztrációs oldalhoz úgy, hogy hozzáadja a meglévő regisztrációs műszaki profilszakasz eleméhez OutputClaims
. Adja meg a kimeneti jogcímek teljes listáját a jogcímek képernyőn való megjelenítési sorrendjének szabályozásához.
Adja hozzá az érvényesítési műszaki profilra mutató hivatkozást a regisztrációs műszaki profilhoz, amely meghívja a következőt REST-ValidateProfile
: . Az új érvényesítési műszaki profil hozzá lesz adva az <ValidationTechnicalProfiles>
alapszabályzatban meghatározott gyűjtemény elejéhez. Ez a viselkedés azt jelenti, hogy csak a sikeres érvényesítés után az Azure AD B2C továbblép a fiók címtárban való létrehozásához.
Keresse meg a ClaimsProviders elemet. Adjon hozzá egy új jogcímszolgáltatót az alábbiak szerint:
<ClaimsProvider> <DisplayName>Local Account</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="LocalAccountSignUpWithLogonEmail"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true"/> <OutputClaim ClaimTypeReferenceId="newPassword" Required="true"/> <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true"/> <OutputClaim ClaimTypeReferenceId="displayName"/> <OutputClaim ClaimTypeReferenceId="givenName"/> <OutputClaim ClaimTypeReferenceId="surName"/> <!-- Required to present the text box to collect the data from the user --> <OutputClaim ClaimTypeReferenceId="loyaltyId"/> <!-- Required to pass the promoCode returned from "REST-ValidateProfile" to subsequent orchestration steps and token issuance--> <OutputClaim ClaimTypeReferenceId="promoCode" /> </OutputClaims> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="REST-ValidateProfile" /> </ValidationTechnicalProfiles> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider> <ClaimsProvider> <DisplayName>Self Asserted</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="SelfAsserted-Social"> <InputClaims> <InputClaim ClaimTypeReferenceId="email" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="displayName"/> <OutputClaim ClaimTypeReferenceId="givenName"/> <OutputClaim ClaimTypeReferenceId="surname"/> <!-- Required to present the text box to collect the data from the user --> <OutputClaim ClaimTypeReferenceId="loyaltyId"/> <!-- Required to pass the promoCode returned from "REST-ValidateProfile" to subsequent orchestration steps and token issuance--> <OutputClaim ClaimTypeReferenceId="promoCode" /> </OutputClaims> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="REST-ValidateProfile"/> </ValidationTechnicalProfiles> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Jogcím belefoglalása a jogkivonatba
Ha vissza szeretné adni a promóciós kód jogcímét a függő entitás alkalmazásának, adjon hozzá egy kimeneti jogcímet a SocialAndLocalAccounts/
SignUpOrSignIn.xml
fájlhoz. A kimeneti jogcím lehetővé teszi a jogcím hozzáadását a jogkivonatba egy sikeres felhasználói folyamat után, és a rendszer elküldi az alkalmazásnak. Módosítsa a műszaki profil elemet a függő entitás szakaszában, hogy kimeneti jogcímként adja hozzá.promoCode
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
<OutputClaim ClaimTypeReferenceId="promoCode" DefaultValue="" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Az egyéni szabályzat tesztelése
- Jelentkezzen be az Azure Portalra.
- Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont a Microsoft Entra ID-bérlőre való váltáshoz a Könyvtárak + előfizetések menüből.
- Válassza a Minden szolgáltatás lehetőséget az Azure Portal bal felső sarkában, majd keresse meg és válassza ki a Alkalmazásregisztrációk.
- Válassza az Identity Experience Framework lehetőséget.
- Válassza az Egyéni házirend feltöltése lehetőséget, majd töltse fel a módosított szabályzatfájlokat: TrustFrameworkExtensions.xml és SignUpOrSignin.xml.
- Válassza ki a feltöltött regisztrációs vagy bejelentkezési szabályzatot, és kattintson a Futtatás most gombra.
- Regisztrálnia kell egy e-mail-címmel.
- Kattintson a Regisztráció hivatkozásra .
- A Hűségazonosító mezőbe írja be az 1234-es azonosítót, és kattintson a Folytatás gombra. Ekkor egy érvényesítési hibaüzenetet kell kapnia.
- Váltson másik értékre, és kattintson a Folytatás gombra.
- Az alkalmazásnak visszaküldött jogkivonat tartalmazza a jogcímet
promoCode
.
{
"typ": "JWT",
"alg": "RS256",
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}.{
"exp": 1584295703,
"nbf": 1584292103,
"ver": "1.0",
"iss": "https://contoso.b2clogin.com/f06c2fe8-709f-4030-85dc-38a4bfd9e82d/v2.0/",
"aud": "e1d2612f-c2bc-4599-8e7b-d874eaca1ee1",
"acr": "b2c_1a_signup_signin",
"nonce": "defaultNonce",
"iat": 1584292103,
"auth_time": 1584292103,
"name": "Emily Smith",
"email": "emily@outlook.com",
"given_name": "Emily",
"family_name": "Smith",
"promoCode": "84362"
...
}
Ajánlott eljárások és hibaelhárítás
Kiszolgáló nélküli felhőfüggvények használata
A kiszolgáló nélküli függvények, például az Azure Functions HTTP-eseményindítói, lehetővé teszik API-végpontok létrehozását az API-összekötővel való használathoz. A kiszolgáló nélküli felhőfüggvény használatával például érvényesítési logikát hajthat végre, és korlátozhatja a regisztrációkat adott e-mail-tartományokra. A kiszolgáló nélküli felhőfüggvény más webes API-kat, adattárakat és más felhőszolgáltatásokat is meghívhat és meghívhat összetett forgatókönyvek esetén.
Best practices
Győződjön meg a következőkről:
- Az API a fent ismertetett API-kérési és válaszszerződéseket követi.
- Az API-összekötő végponti URL-címe a megfelelő API-végpontra mutat.
- Az API kifejezetten ellenőrzi a kapott jogcímek null értékeit, amelyektől függ.
- Az API implementál egy hitelesítési módszert, amely az API-Csatlakozás or biztonságossá tételében szerepel.
- Az API a lehető leggyorsabban válaszol a zökkenőmentes felhasználói élmény biztosítása érdekében.
- Az Azure AD B2C legfeljebb 20 másodpercet vár a válasz fogadásához. Ha egyik sem érkezik meg, az még egy kísérletet tesz (újra) az API meghívására.
- Ha kiszolgáló nélküli függvényt vagy méretezhető webszolgáltatást használ, használjon olyan üzemeltetési tervet, amely "ébren" vagy "melegen" tartja az API-t az éles környezetben. Az Azure Functions esetében ajánlott legalább a Prémium csomag éles környezetben való használata.
- Gondoskodjon az API magas rendelkezésre állásáról.
- Monitorozza és optimalizálja az API alsóbb rétegbeli API-jainak, adatbázisainak vagy egyéb függőségeinek teljesítményét.
Fontos
A végpontoknak meg kell felelniük az Azure AD B2C biztonsági követelményeinek. A régebbi TLS-verziók és -titkosítások elavultak. További információ: Azure AD B2C TLS és titkosítási csomag követelményei.
Naplózás használata
Általában hasznos, ha a webes API-szolgáltatás által engedélyezett naplózási eszközökkel (például az Application Insightsszal) figyeli az API-t váratlan hibakódok, kivételek és gyenge teljesítmény esetén.
- Olyan HTTP-állapotkódok figyelése, amelyek nem HTTP 200 vagy 400.
- A 401 vagy 403 HTTP-állapotkód általában azt jelzi, hogy probléma van a hitelesítéssel. Ellenőrizze duplán az API hitelesítési rétegét és a megfelelő konfigurációt az API-összekötőben.
- Ha szükséges, használjon agresszívebb naplózási szinteket (például "trace" vagy "debug") a fejlesztés során.
- Monitorozza az API-t a hosszú válaszidőkért.
Emellett az Azure AD B2C naplózza a felhasználói hitelesítések során a felhasználói folyamaton keresztüli API-tranzakciók metaadatait. A következők megkeresése:
- Nyissa meg az Azure AD B2C-t.
- A Tevékenységek területen válassza a Naplózási naplók lehetőséget.
- Szűrje a listanézetet: Dátum esetén válassza ki a kívánt időintervallumot, és tevékenység esetén válassza ki a felhasználói folyamat részeként meghívott API-t.
- Vizsgálja meg az egyes naplókat. Minden sor egy API-összekötőt jelöl, amely egy felhasználói folyamat során próbál meghívni. Ha egy API-hívás meghiúsul, és újrapróbálkozás történik, akkor is egyetlen sorként jelenik meg. Ez
numberOfAttempts
azt jelzi, hogy hányszor hívták meg az API-t. Ez az érték lehet1
vagy2
. Az API-hívással kapcsolatos további információk a naplókban találhatók.
Kiszolgáló nélküli felhőfüggvények használata
A kiszolgáló nélküli felhőfüggvények, például az Azure Functions HTTP-eseményindítói egyszerű, magas rendelkezésre állású, nagy teljesítményű módot biztosítanak API-végpontok API-összekötőként való létrehozásához.
Best practices
Győződjön meg a következőkről:
- Az API kifejezetten ellenőrzi a kapott jogcímek null értékeit, amelyektől függ.
- Az API implementál egy hitelesítési módszert, amely az API-Csatlakozás or biztonságossá tételében szerepel.
- Az API a lehető leggyorsabban válaszol a zökkenőmentes felhasználói élmény biztosítása érdekében.
- Ha kiszolgáló nélküli függvényt vagy méretezhető webszolgáltatást használ, használjon olyan üzemeltetési tervet, amely "ébren" vagy "melegen" tartja az API-t az éles környezetben. Az Azure Functions esetében ajánlott legalább a Prémium csomag használata
- Gondoskodjon az API magas rendelkezésre állásáról.
- Monitorozza és optimalizálja az API alsóbb rétegbeli API-jainak, adatbázisainak vagy egyéb függőségeinek teljesítményét.
Fontos
A végpontoknak meg kell felelniük az Azure AD B2C biztonsági követelményeinek. A régebbi TLS-verziók és -titkosítások elavultak. További információ: Azure AD B2C TLS és titkosítási csomag követelményei.
Naplózás használata
Általában hasznos, ha a webes API-szolgáltatás által engedélyezett naplózási eszközökkel (például az Application Insightsszal) figyeli az API-t váratlan hibakódok, kivételek és gyenge teljesítmény esetén.
- Olyan HTTP-állapotkódok figyelése, amelyek nem HTTP 200 vagy 400.
- A 401 vagy 403 HTTP-állapotkód általában azt jelzi, hogy probléma van a hitelesítéssel. Ellenőrizze duplán az API hitelesítési rétegét és a megfelelő konfigurációt az API-összekötőben.
- Ha szükséges, használjon agresszívebb naplózási szinteket (például "trace" vagy "debug") a fejlesztés során.
- Monitorozza az API-t a hosszú válaszidőkért.
Következő lépések
- Ismerkedés a mintákkal.
- Az API-Csatlakozás or biztonságossá tétele