Přidání vlastního pracovního postupu schvalování do samoobslužné registrace

Platí pro: Zelený kruh s bílým symbolem zaškrtnutí Tenanti pracovních sil – externí tenanti Bílý kruh se šedým symbolem X. (další informace)

S konektory rozhraní API můžete integrovat vlastní pracovní postupy schvalování pomocí samoobslužné registrace, abyste mohli spravovat uživatelské účty typu host vytvořené ve vašem tenantovi.

Tento článek obsahuje příklad integrace se schvalovacím systémem. V tomto příkladu tok uživatele samoobslužné registrace shromažďuje uživatelská data během procesu registrace a předává je do vašeho schvalovacího systému. Systém schválení pak může:

  • Automaticky schvalte uživatele a povolte Microsoft Entra ID k vytvoření uživatelského účtu.
  • Aktivace ruční kontroly Pokud je žádost schválena, systém schválení použije Microsoft Graph ke zřízení uživatelského účtu. Schvalovací systém také může uživatele upozornit, že byl vytvořen jeho účet.

Důležité

  • Od 12. července 2021, pokud zákazníci Microsoft Entra B2B nastavili nové integrace Google pro použití s samoobslužnou registraci pro své vlastní nebo obchodní aplikace, ověřování s identitami Google nebude fungovat, dokud se ověřování nepřesune do systémových webových zobrazení. Další informace.
  • Od 30. září 2021 google přestane podporovat přihlášení k vloženým webovým zobrazením. Pokud vaše aplikace ověřují uživatele pomocí vloženého webového zobrazení a používáte federaci Google s Azure AD B2C nebo Microsoft Entra B2B pro pozvání externích uživatelů nebo samoobslužnou registraci, uživatelé Google Gmailu se nebudou moct ověřit. Další informace.

Registrace aplikace pro váš schvalovací systém

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

V tenantovi Microsoft Entra musíte zaregistrovat svůj schvalovací systém jako aplikaci, aby se mohl ověřit pomocí ID Microsoft Entra a mít oprávnění k vytváření uživatelů. Přečtěte si další informace o základech ověřování a autorizace pro Microsoft Graph.

  1. Přihlaste se k Centru pro správu Microsoft Entra alespoň jako uživatel Správa istrator.
  2. Přejděte na Identity>Applications> Registrace aplikací a pak vyberte Nová registrace.
  3. Zadejte název aplikace, například Schválení registrace.
  4. Vyberte Zaregistrovat. Ostatní pole můžete ponechat ve výchozím nastavení.

Snímek obrazovky, který zvýrazní tlačítko Zaregistrovat

  1. V části Spravovat v nabídce vlevo vyberte oprávnění rozhraní API a pak vyberte Přidat oprávnění.
  2. Na stránce Oprávnění rozhraní API požadavku vyberte Microsoft Graph a pak vyberte Oprávnění aplikace.
  3. V části Vybrat oprávnění rozbalte položku Uživatel a potom zaškrtněte políčko User.ReadWrite.All . Toto oprávnění umožňuje schvalovacímu systému vytvořit uživatele po schválení. Poté vyberte Přidat oprávnění.

Snímek obrazovky s žádostí o oprávnění rozhraní API

  1. Na stránce oprávnění rozhraní API vyberte Udělit souhlas správce (název vašeho tenanta) a pak vyberte Ano.
  2. V části Spravovat v nabídce vlevo vyberte Certifikáty a tajné kódy a pak vyberte Nový tajný klíč klienta.
  3. Zadejte popis tajného klíče, například Schválení tajný klíč klienta, a vyberte dobu trvání, kdy vyprší platnost tajného klíče klienta. Pak vyberte Přidat.
  4. Zkopírujte hodnotu tajného klíče klienta. Hodnoty tajných kódů klienta lze zobrazit pouze okamžitě po vytvoření. Před opuštěním stránky nezapomeňte tajný kód uložit.

Snímek obrazovky s kopírováním tajného klíče klienta

  1. Nakonfigurujte schvalovací systém tak, aby jako ID klienta používal ID aplikace a tajný klíč klienta, který jste vygenerovali pro ověření pomocí Microsoft Entra ID.

Vytvoření konektorů rozhraní API

Dále vytvoříte konektory rozhraní API pro tok uživatele samoobslužné registrace. Rozhraní API systému schválení potřebuje dva konektory a odpovídající koncové body, jako jsou příklady uvedené níže. Tyto konektory rozhraní API dělají toto:

  • Zkontrolujte stav schválení. Okamžitě po přihlášení uživatele pomocí zprostředkovatele identity odešlete volání do schvalovacího systému a zkontrolujte, jestli má uživatel existující žádost o schválení nebo už byl odepřen. Pokud váš schvalovací systém dělá jenom automatická rozhodnutí o schválení, nemusí být tento konektor rozhraní API potřeba. Příklad konektoru rozhraní API Pro kontrolu stavu schválení

Snímek obrazovky s konfigurací konektoru API pro kontrolu stavu schválení

  • Žádost o schválení – odešlete volání do schvalovacího systému po dokončení stránky kolekce atributů, ale před vytvořením uživatelského účtu požádejte o schválení. Žádost o schválení je možné automaticky udělit nebo ručně zkontrolovat. Příklad konektoru rozhraní API "Žádost o schválení".

Snímek obrazovky s konfigurací konektoru rozhraní API pro schválení žádosti

Pokud chcete tyto konektory vytvořit, postupujte podle kroků v části Vytvoření konektoru rozhraní API.

Povolení konektorů rozhraní API v toku uživatele

Teď přidáte konektory rozhraní API do toku uživatele samoobslužné registrace pomocí následujícího postupu:

  1. Přihlaste se k Centru pro správu Microsoft Entra alespoň jako uživatel Správa istrator.

  2. Přejděte na Identity>Externí identity>Toky uživatelů a pak vyberte tok uživatele, pro který chcete povolit konektor rozhraní API.

  3. Vyberte konektory rozhraní API a pak vyberte koncové body rozhraní API, které chcete vyvolat v následujícím postupu v toku uživatele:

    • Po federaci s zprostředkovatelem identity během registrace: Vyberte konektor rozhraní API stavu schválení, například Zkontrolujte stav schválení.
    • Před vytvořením uživatele: Vyberte konektor rozhraní API žádosti o schválení, například Žádost o schválení.

Snímek obrazovky s konektorem rozhraní API v toku uživatele

  1. Zvolte Uložit.

Řízení toku registrace pomocí odpovědí rozhraní API

Váš schvalovací systém může při zavolání použít své odpovědi k řízení toku registrace.

Žádost a odpovědi na konektor rozhraní API "Kontrola stavu schválení"

Příklad požadavku přijatého rozhraním API z konektoru API Pro kontrolu stavu schválení:

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"
}

Přesné deklarace identity odeslané do rozhraní API závisí na tom, které informace poskytuje zprostředkovatel identity. E-mail je vždy odeslán.

Odpověď na pokračování pro "Kontrola stavu schválení"

Koncový bod rozhraní API pro kontrolu stavu schválení by měl vrátit odpověď na pokračování, pokud:

  • Uživatel ještě nepožádá o schválení.

Příklad odpovědi na pokračování:

HTTP/1.1 200 OK
Content-type: application/json

{
    "version": "1.0.0",
    "action": "Continue"
}

Blokující odpověď na "Kontrola stavu schválení"

Koncový bod rozhraní API pro kontrolu stavu schválení by měl vrátit blokující odpověď, pokud:

  • Schválení uživatele čeká na vyřízení.
  • Uživatel byl odepřen a neměl by být oprávněn znovu požádat o schválení.

Tady jsou příklady blokování odpovědí:

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",
}

Žádost a odpovědi pro konektor rozhraní API "Žádost o schválení"

Příklad požadavku HTTP přijatého rozhraním API z konektoru rozhraní API "Žádost o schválení":

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"
}

Přesné deklarace identity odeslané do rozhraní API závisí na tom, které informace se shromažďují od uživatele nebo které poskytuje zprostředkovatel identity.

Odpověď na pokračování žádosti o schválení

Koncový bod rozhraní API pro schválení požadavku by měl vrátit odpověď na pokračování, pokud:

  • Uživatel může být automaticky schválen.

Příklad odpovědi na pokračování:

HTTP/1.1 200 OK
Content-type: application/json

{
    "version": "1.0.0",
    "action": "Continue"
}

Důležité

Pokud se obdrží odpověď na pokračování, vytvoří ID Microsoft Entra uživatelský účet a nasměruje uživatele do aplikace.

Blokující odpověď na žádost o schválení

Koncový bod rozhraní API pro schválení žádosti by měl vrátit blokující odpověď, pokud:

  • Byla vytvořena žádost o schválení uživatele a nyní čeká na vyřízení.
  • Žádost o schválení uživatele byla automaticky odepřena.

Tady jsou příklady blokování odpovědí:

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",
}

V userMessage odpovědi se uživateli zobrazí například:

Příklad čekající schvalovací stránky

Vytvoření uživatelského účtu po ručním schválení

Jakmile vlastní schvalovací systém získá ruční schválení, vytvoří uživatelský účet pomocí Microsoft Graphu. Způsob, jakým váš schvalovací systém zřídí uživatelský účet, závisí na zprostředkovateli identity, který uživatel použil.

Jednorázové heslo pro federovaného uživatele Google nebo Facebooku a e-mail

Důležité

Schvalovací systém by měl explicitně zkontrolovat, identities[0] že identitiesa jsou přítomné a identities[0].issuer že identities[0].issuer se rovná "facebook", "google" nebo "mail", aby tuto metodu používal.

Pokud se váš uživatel přihlásil pomocí účtu Google nebo Facebooku nebo jednorázového hesla, můžete použít rozhraní API pro vytváření uživatelů.

  1. Schvalovací systém přijímá požadavek HTTP z toku uživatele.
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"
}
  1. Schvalovací systém používá Microsoft Graph k vytvoření uživatelského účtu.
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"
}
Parametr Požadováno Popis
userPrincipalName (Hlavní název uživatele) Ano Lze vygenerovat tak, že převezme email deklaraci identity odeslanou do rozhraní API, nahradí @znak znakem _a před čekáním na #EXT@<tenant-name>.onmicrosoft.comněj .
accountEnabled Ano Musí být nastavena na truehodnotu .
pošta Ano Ekvivalent deklarace email identity odeslané do rozhraní API
userType Ano Musí být Guest. Určuje tohoto uživatele jako uživatele typu host.
Identit Ano Informace o federované identitě.
<otherBuiltInAttribute> No Další předdefinované atributy, jako displayNameje , citya další. Názvy parametrů jsou stejné jako parametry odeslané konektorem rozhraní API.
<extension_{extensions-app-id}_CustomAttribute> No Vlastní atributy o uživateli. Názvy parametrů jsou stejné jako parametry odeslané konektorem rozhraní API.

Pro federovaného uživatele Microsoft Entra nebo uživatele účtu Microsoft

Pokud se uživatel přihlásí pomocí federovaného účtu Microsoft Entra nebo účtu Microsoft, musíte k vytvoření uživatele použít rozhraní API pozvánky a pak volitelně aktualizovat rozhraní API pro přiřazení dalších atributů uživateli.

  1. Schvalovací systém obdrží požadavek HTTP z toku uživatele.
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"
}
  1. Schvalovací systém vytvoří pozvánku email pomocí konektoru rozhraní API.
POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json

{
    "invitedUserEmailAddress": "johnsmith@fabrikam.onmicrosoft.com",
    "inviteRedirectUrl" : "https://myapp.com"
}

Příklad odpovědi:

HTTP/1.1 201 OK
Content-type: application/json

{
    ...
    "invitedUser": {
        "id": "<generated-user-guid>"
    }
}
  1. Schvalovací systém používá ID pozvaného uživatele k aktualizaci účtu uživatele se shromážděnými atributy uživatele (volitelné).
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"
}

Další kroky