Lägga till ett anpassat arbetsflöde för godkännande i självbetjäningsregistrering
Gäller för:Personalklientorganisationer Externa klienter (läs mer)
Med API-anslutningsappar kan du integrera med dina egna anpassade arbetsflöden för godkännande med självbetjäningsregistrering så att du kan hantera vilka gästanvändarkonton som skapas i din klientorganisation.
Den här artikeln ger ett exempel på hur du integrerar med ett godkännandesystem. I det här exemplet samlar användarflödet för självbetjäningsregistrering in användardata under registreringsprocessen och skickar dem till ditt godkännandesystem. Sedan kan godkännandesystemet:
- Godkänn användaren automatiskt och tillåt att Microsoft Entra-ID:t skapar användarkontot.
- Utlös en manuell granskning. Om begäran godkänns använder godkännandesystemet Microsoft Graph för att etablera användarkontot. Godkännandesystemet kan också meddela användaren att deras konto har skapats.
Viktigt!
- Från och med den 12 juli 2021, om Microsoft Entra B2B-kunder konfigurerar nya Google-integreringar för användning med självbetjäningsregistrering för sina anpassade eller branschspecifika program, fungerar inte autentisering med Google-identiteter förrän autentiseringar flyttas till systemwebbvyer. Läs mer.
- Från och med den 30 september 2021 är Google inaktuellt stöd för inbäddad webbvisningsinloggning. Om dina appar autentiserar användare med en inbäddad webbvy och du använder Google-federation med Azure AD B2C eller Microsoft Entra B2B för externa användarinbjudningar eller självbetjäningsregistrering kommer Google Gmail-användare inte att kunna autentisera. Läs mer.
Registrera ett program för ditt godkännandesystem
Dricks
Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.
Du måste registrera ditt godkännandesystem som ett program i din Microsoft Entra-klientorganisation så att det kan autentisera med Microsoft Entra-ID och ha behörighet att skapa användare. Läs mer om grunderna för autentisering och auktorisering för Microsoft Graph.
- Logga in på administrationscentret för Microsoft Entra som minst användaradministratör.
- Bläddra till Identitetsprogram>> Appregistreringar och välj sedan Ny registrering.
- Ange ett namn för programmet, till exempel Registrera Godkännanden.
- Välj Registrera. Du kan lämna andra fält som standard.
- Under Hantera i den vänstra menyn väljer du API-behörigheter och sedan Lägg till en behörighet.
- På sidan Api-behörigheter för begäran väljer du Microsoft Graph och sedan Programbehörigheter.
- Under Välj behörigheter expanderar du Användare och markerar sedan kryssrutan User.ReadWrite.All . Med den här behörigheten kan godkännandesystemet skapa användaren vid godkännande. Välj Lägg till behörigheter.
- På sidan API-behörigheter väljer du Bevilja administratörsmedgivande för (ditt klientnamn) och väljer sedan Ja.
- Under Hantera i den vänstra menyn väljer du Certifikat och hemligheter och sedan Ny klienthemlighet.
- Ange en Beskrivning för hemligheten, till exempel Godkännanden klienthemlighet, och välj varaktigheten för när klienthemligheten upphör att gälla. Välj Lägg till.
- Kopiera värdet för klienthemligheten. Klienthemlighetsvärden kan endast visas omedelbart efter att de har skapats. Se till att spara hemligheten när den skapas innan du lämnar sidan.
- Konfigurera ditt godkännandesystem för att använda program-ID:t som klient-ID och klienthemligheten som du genererade för att autentisera med Microsoft Entra-ID.
Skapa API-anslutningsappar
Nu ska du skapa API-anslutningsappar för ditt användarflöde för självbetjäningsregistrering. Api:et för godkännandesystemet behöver två anslutningsappar och motsvarande slutpunkter, till exempel som visas nedan. Dessa API-anslutningsappar gör följande:
- Kontrollera godkännandestatus. Skicka ett anrop till godkännandesystemet omedelbart efter att en användare har loggat in med en identitetsprovider för att kontrollera om användaren har en befintlig godkännandebegäran eller redan har nekats. Om ditt godkännandesystem endast fattar beslut om automatiskt godkännande kanske den här API-anslutningsappen inte behövs. Exempel på api-anslutningsappen "Kontrollera godkännandestatus".
- Begäran om godkännande – Skicka ett anrop till godkännandesystemet när en användare har slutfört attributsamlingssidan, men innan användarkontot skapas för att begära godkännande. Begäran om godkännande kan beviljas automatiskt eller granskas manuellt. Exempel på en API-anslutningsapp för begärandegodkännande.
Om du vill skapa dessa anslutningsappar följer du stegen i skapa en API-anslutningsapp.
Aktivera API-anslutningsappar i ett användarflöde
Nu ska du lägga till API-anslutningsapparna i ett användarflöde för självbetjäningsregistrering med följande steg:
Logga in på administrationscentret för Microsoft Entra som minst användaradministratör.
Bläddra till Identitet>Externa identiteter>Användarflöden och välj sedan det användarflöde som du vill aktivera API-anslutningsappen för.
Välj API-anslutningsappar och välj sedan de API-slutpunkter som du vill anropa i följande steg i användarflödet:
- När du har federerat med en identitetsprovider under registreringen: Välj api-anslutningsappen för godkännandestatus, till exempel Kontrollera godkännandestatus.
- Innan du skapar användaren: Välj api-anslutningsappen för godkännandebegäran, till exempel Begäran om godkännande.
- Välj Spara.
Kontrollera registreringsflödet med API-svar
Ditt godkännandesystem kan använda sina svar när det anropas för att styra registreringsflödet.
Begäran och svar för API-anslutningsappen "Kontrollera godkännandestatus"
Exempel på den begäran som tas emot av API:et från API-anslutningsappen "Kontrollera godkännandestatus":
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [ //Sent for Google, Facebook, and Email One Time Passcode identity providers
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"givenName":"John",
"lastName":"Smith",
"ui_locales":"en-US"
}
De exakta anspråk som skickas till API:et beror på vilken information som tillhandahålls av identitetsprovidern. "e-post" skickas alltid.
Fortsättningssvar för "Kontrollera godkännandestatus"
API-slutpunkten Kontrollera godkännandestatus bör returnera ett fortsättningssvar om:
- Användaren har inte tidigare begärt ett godkännande.
Exempel på fortsättningssvaret:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "Continue"
}
Blockerande svar för "Kontrollera godkännandestatus"
API-slutpunkten Kontrollera godkännandestatus bör returnera ett blockerande svar om:
- Användarens godkännande väntar.
- Användaren nekades och bör inte tillåtas begära godkännande igen.
Följande är exempel på blockeringssvar:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your access request is already processing. You'll be notified when your request has been approved.",
}
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your sign up request has been denied. Please contact an administrator if you believe this is an error",
}
Begäran och svar för API-anslutningsappen "Begäran om godkännande"
Exempel på en HTTP-begäran som tas emot av API:et från API-anslutningsappen "Begär godkännande":
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [ // Sent for Google, Facebook, and Email One Time Passcode identity providers
{
"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",
"ui_locales":"en-US"
}
De exakta anspråk som skickas till API:et beror på vilken information som samlas in från användaren eller tillhandahålls av identitetsprovidern.
Fortsättningssvar för "Begärandegodkännande"
API-slutpunkten för begärandegodkännande bör returnera ett fortsättningssvar om:
- Användaren kan godkännas automatiskt.
Exempel på fortsättningssvaret:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "Continue"
}
Viktigt!
Om ett fortsättningssvar tas emot skapar Microsoft Entra-ID ett användarkonto och dirigerar användaren till programmet.
Blockera svar för "Begärandegodkännande"
API-slutpunkten för begärandegodkännande bör returnera ett blockerande svar om:
- En begäran om användargodkännande skapades och väntar nu.
- En begäran om användargodkännande nekades automatiskt.
Följande är exempel på blockeringssvar:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your account is now waiting for approval. You'll be notified when your request has been approved.",
}
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your sign up request has been denied. Please contact an administrator if you believe this is an error",
}
I userMessage
svaret visas för användaren, till exempel:
Skapa användarkonto efter manuellt godkännande
När det anpassade godkännandesystemet har fått manuellt godkännande skapar det ett användarkonto med hjälp av Microsoft Graph. Hur ditt godkännandesystem etablerar användarkontot beror på den identitetsprovider som användes av användaren.
För en federerad Google- eller Facebook-användare och e-postlösenord för engångslösenord
Viktigt!
Godkännandesystemet bör uttryckligen kontrollera att identities
, identities[0]
och identities[0].issuer
finns och som identities[0].issuer
är lika med "facebook", "google" eller "mail" för att använda den här metoden.
Om användaren har loggat in med ett Google- eller Facebook-konto eller ett engångslösenord via e-post kan du använda API:et för att skapa användare.
- Godkännandesystemet använder tar emot HTTP-begäran från användarflödet.
POST <Approvals-API-endpoint>
Content-type: application/json
{
"email": "johnsmith@outlook.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value",
"ui_locales":"en-US"
}
- Godkännandesystemet använder Microsoft Graph för att skapa ett användarkonto.
POST https://graph.microsoft.com/v1.0/users
Content-type: application/json
{
"userPrincipalName": "johnsmith_outlook.com#EXT@contoso.onmicrosoft.com",
"accountEnabled": true,
"mail": "johnsmith@outlook.com",
"userType": "Guest",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value"
}
Parameter | Obligatoriskt | Beskrivning |
---|---|---|
userPrincipalName | Ja | Kan genereras genom att ta anspråket email som skickas till API:et, ersätta @ tecknet med _ och vänta till .#EXT@<tenant-name>.onmicrosoft.com |
accountEnabled | Ja | Måste anges till true . |
e-post | Ja | Motsvarar anspråket som email skickas till API:et. |
userType | Ja | Måste vara Guest . Anger den här användaren som gästanvändare. |
Identiteter | Ja | Den federerade identitetsinformationen. |
<otherBuiltInAttribute> | Nej | Andra inbyggda attribut som displayName , city och andra. Parameternamn är samma som de parametrar som skickas av API-anslutningsappen. |
<extension_{extensions-app-id}_CustomAttribute> | Nej | Anpassade attribut om användaren. Parameternamn är samma som de parametrar som skickas av API-anslutningsappen. |
För en federerad Microsoft Entra-användare eller Microsoft-kontoanvändare
Om en användare loggar in med ett federerat Microsoft Entra-konto eller ett Microsoft-konto måste du använda inbjudnings-API:et för att skapa användaren och sedan eventuellt använda uppdaterings-API:et för att tilldela fler attribut till användaren.
- Godkännandesystemet tar emot HTTP-begäran från användarflödet.
POST <Approvals-API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value",
"ui_locales":"en-US"
}
- Godkännandesystemet skapar inbjudan med hjälp av den
email
som tillhandahålls av API-anslutningsappen.
POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json
{
"invitedUserEmailAddress": "johnsmith@fabrikam.onmicrosoft.com",
"inviteRedirectUrl" : "https://myapp.com"
}
Exempel på svaret:
HTTP/1.1 201 OK
Content-type: application/json
{
...
"invitedUser": {
"id": "<generated-user-guid>"
}
}
- Godkännandesystemet använder den inbjudna användarens ID för att uppdatera användarens konto med insamlade användarattribut (valfritt).
PATCH https://graph.microsoft.com/v1.0/users/<generated-user-guid>
Content-type: application/json
{
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_AttributeName": "custom attribute value"
}