Oktatóanyag: Több-bérlős démon létrehozása, amely a Microsoft Identitásplatform
Ebben az oktatóanyagban letölt és futtat egy ASP.NET démon webalkalmazást, amely bemutatja, hogy az OAuth 2.0 ügyfél hitelesítő adataival hozzáférési jogkivonatot kap a Microsoft Graph API meghívásához.
Ebben az oktatóanyagban:
- Démonalkalmazás integrálása a Microsoft Identitásplatform
- Alkalmazásengedélyek megadása közvetlenül az alkalmazásnak rendszergazda által
- Hozzáférési jogkivonat beszerzése a Microsoft Graph API meghívásához
- Hívja meg a Microsoft Graph API-t.
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Előfeltételek
- Visual Studio 2017 vagy 2019.
- Egy Microsoft Entra-bérlő. További információ: Microsoft Entra-bérlő lekérése.
- Egy vagy több felhasználói fiók a bérlőben. Ez a minta nem működik Microsoft-fiókkal. Ha microsoftos fiókkal jelentkezett be, és még soha nem hozott létre felhasználói fiókot a címtárában, tegye ezt most.
Eset
Az alkalmazás ASP.NET MVC-alkalmazásként készült. Az OWIN OpenID Csatlakozás köztes szoftver használatával jelentkezik be a felhasználókba.
A mintában szereplő "démon" összetevő egy API-vezérlő. SyncController.cs
A vezérlő meghívásakor lekéri az ügyfél Microsoft Entra-bérlőjének felhasználóinak listáját a Microsoft Graphból. SyncController.cs
egy AJAX-hívás aktiválódik a webalkalmazásban. A .NET-hez készült Microsoft Authentication Library (MSAL) használatával szerez be hozzáférési jogkivonatot a Microsoft Graphhoz.
Mivel az alkalmazás egy több-bérlős alkalmazás a Microsoft üzleti ügyfelei számára, lehetővé kell tennie az ügyfelek számára, hogy "regisztrálják" vagy "összekapcsolják" az alkalmazást a vállalati adataikkal. A kapcsolati folyamat során a globális Rendszergazda istrator először közvetlenül az alkalmazásnak ad engedélyt, hogy a céges adatok nem interaktív módon, bejelentkezett felhasználó jelenléte nélkül férjenek hozzá. A minta logikájának többsége bemutatja, hogyan érhető el ez a kapcsolati folyamat az identitásplatform rendszergazdai hozzájárulási végpontjával.
A mintában használt fogalmakkal kapcsolatos további információkért olvassa el az identitásplatform ügyfél-hitelesítő adatok protokolljának dokumentációját.
Az adattár klónozása vagy letöltése
A rendszerhéjból vagy a parancssorból adja meg a következő parancsot:
git clone https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2.git
Vagy töltse le a mintát egy zip-fájlban.
Az alkalmazás regisztrálása
Ez a minta egy projektből áll. Ha regisztrálni szeretné az alkalmazást a Microsoft Entra-bérlőjében, a következőket teheti:
- Kövesse a bérlő kiválasztása és a minta konfigurálása a bérlő használatához című témakörben leírt lépéseket.
- Olyan PowerShell-szkripteket használjon, amelyek:
- Automatikusan hozza létre a Microsoft Entra-alkalmazásokat és a kapcsolódó objektumokat (jelszavakat, engedélyeket, függőségeket).
- Módosítsa a Visual Studio-projektek konfigurációs fájljait.
Ha az automatizálást szeretné használni:
Windows rendszeren futtassa a PowerShellt, és nyissa meg a klónozott könyvtár gyökerét.
Futtassa ezt a parancsot:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Futtassa a szkriptet a Microsoft Entra-alkalmazás létrehozásához, és ennek megfelelően konfigurálja a mintaalkalmazás kódját:
.\AppCreationScripts\Configure.ps1
A szkriptek futtatásának egyéb módjait az alkalmazáslétrehozási szkriptek ismertetik.
Nyissa meg a Visual Studio-megoldást, és válassza a Start lehetőséget a kód futtatásához.
Ha nem szeretné használni az automatizálást, kövesse az alábbi szakaszok lépéseit.
A bérlő kiválasztása
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásfejlesztőként.
Ha több bérlőhöz is hozzáfér, a felső menü Gépház ikonjávalválthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
Új regisztráció kiválasztása.
Adja meg például
dotnet-web-daemon-v2
az alkalmazás nevét. Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja.A Támogatott fióktípusok szakaszban válassza a Fiókok lehetőséget bármely szervezeti címtárban.
Az Átirányítási URI (nem kötelező) szakaszban válassza a Web lehetőséget a kombinált listában, és adja meg és
https://localhost:44316/Account/GrantPermissions
adja meghttps://localhost:44316/
átirányítási URI-kként.Ha kétnál több átirányítási URI van, az alkalmazás sikeres létrehozása után később hozzá kell adnia őket a Hitelesítés lapról.
Válassza a Regisztráció elemet az alkalmazás létrehozásához.
Az alkalmazás Áttekintés lapján keresse meg az alkalmazás (ügyfél) azonosítóját , és jegyezze fel későbbi használatra. Ehhez konfigurálnia kell a Visual Studio konfigurációs fájlját ehhez a projekthez.
A Kezelés területen válassza a Hitelesítés lehetőséget.
Az előtérbeli bejelentkezési URL-cím beállítása a következőre
https://localhost:44316/Account/EndSession
: .Az Implicit engedélyezési és hibrid folyamatok szakaszban válassza ki az Access-jogkivonatokat és az azonosító jogkivonatokat. Ehhez a mintához engedélyezni kell az implicit engedélyezési folyamatot , hogy bejelentkezhessen a felhasználóba, és meghívjon egy API-t.
Válassza a Mentés parancsot.
A Kezelés területen válassza a Tanúsítványok és titkos kódok lehetőséget.
Az Ügyfél titkos kulcsok szakaszban válassza az Új ügyfélkód lehetőséget.
Adjon meg egy kulcsleírást (például az alkalmazás titkos kódját).
Válassza ki a kulcs időtartamát 1 év alatt, 2 év alatt vagy Soha nem jár le.
Válassza a Hozzáadás lehetőséget. Rögzítse a kulcs értékét egy biztonságos helyen. A projekt Visual Studióban való konfigurálásához később szüksége lesz erre a kulcsra.
A Kezelés területen válassza az API-engedélyeket>: Engedély hozzáadása.
A Gyakran használt Microsoft API-k szakaszban válassza a Microsoft Graph lehetőséget.
Az Alkalmazásengedélyek szakaszban győződjön meg arról, hogy a megfelelő engedélyek vannak kiválasztva: User.Read.All.
Jelölje be az Engedélyek hozzáadása lehetőséget.
A minta konfigurálása a bérlő használatára
A következő lépésekben a ClientID ugyanaz, mint az "alkalmazásazonosító" vagy az AppId.
Nyissa meg a megoldást a Visual Studióban a projektek konfigurálásához.
Az ügyfélprojekt konfigurálása
Ha a beállítási szkripteket használta, a rendszer a következő módosításokat alkalmazza Önre.
- Nyissa meg a UserSync\Web.Config fájlt.
- Keresse meg az ida:ClientId alkalmazáskulcsot. Cserélje le a meglévő értéket a korábban rögzített dotnet-web-daemon-v2 alkalmazásazonosítóra.
- Keresse meg az ida:ClientSecret alkalmazáskulcsot. Cserélje le a meglévő értéket a dotnet-web-daemon-v2 alkalmazás létrehozása során mentett kulcsra.
Minta futtatása
Tisztítsa meg a megoldást, építse újra a megoldást, futtassa a UserSync alkalmazást, majd jelentkezzen be rendszergazdaként a Microsoft Entra-bérlőben. Ha nincs Microsoft Entra-bérlője a teszteléshez, az alábbi utasításokat követve kérhet egyet.
Amikor bejelentkezik, az alkalmazás először engedélyt kér a bejelentkezéshez és a felhasználói profil olvasásához. Ez a hozzájárulás lehetővé teszi az alkalmazás számára, hogy ön üzleti felhasználó legyen.
Az alkalmazás ezután megpróbálja szinkronizálni a Felhasználók listáját a Microsoft Entra-bérlőről a Microsoft Graphon keresztül. Ha nem tudja, arra kéri Önt (a bérlői rendszergazdát), hogy csatlakoztassa a bérlőt az alkalmazáshoz.
Az alkalmazás ezután engedélyt kér a bérlőben lévő felhasználók listájának olvasására.
Az engedély megadása után kijelentkezik az alkalmazásból. Ez a kijelentkezés biztosítja, hogy a Microsoft Graph meglévő hozzáférési jogkivonatai törlődnek a jogkivonat-gyorsítótárból. Amikor ismét bejelentkezik, a beszerzett új jogkivonat rendelkezik a Microsoft Graph felé irányuló hívások indításához szükséges engedélyekkel.
Az engedély megadása után az alkalmazás bármikor lekérdezheti a felhasználókat. Ezt a Felhasználók szinkronizálása gombra kattintva és a felhasználók listájának frissítésével ellenőrizheti. Próbáljon meg hozzáadni vagy eltávolítani egy felhasználót, majd újraszinkronizálást a listára. (Vegye figyelembe azonban, hogy az alkalmazás csak a felhasználók első oldalát szinkronizálja.)
Tudnivalók a kódról
A minta vonatkozó kódja a következő fájlokban található:
- App_Start\Startup.Auth.cs, Controllers\AccountController.cs: Kezdeti bejelentkezés. A vezérlőn végrehajtott műveleteknek van egy Engedélyezés attribútuma, amely arra kényszeríti a felhasználót, hogy jelentkezzen be. Az alkalmazás az engedélyezési kód folyamatával jelentkezik be a felhasználóba.
- Controllers\SyncController.cs: A felhasználók listájának szinkronizálása a helyi memóriabeli tárolóval.
- Controllers\UserController.cs: A helyi memóriabeli tárolóból származó felhasználók listájának megjelenítése.
- Controllers\AccountController.cs: Engedélyek beszerzése a bérlő rendszergazdájától a rendszergazdai hozzájárulási végpont használatával.
A mintaalkalmazás újbóli létrehozása
- A Visual Studióban hozzon létre egy új Visual C#ASP.NET webalkalmazási (.NET-keretrendszer) projektet.
- A következő képernyőn válassza ki az MVC-projektsablont . Mappa- és alapvető hivatkozásokat is hozzáadhat a Webes API-hoz, mert később hozzá fog adni egy webes API-vezérlőt. Hagyja alapértelmezettként a projekt választott hitelesítési módját: Nincs hitelesítés.
- Jelölje ki a projektet a Megoldáskezelő ablakban, és válassza az F4 billentyűt.
- A projekttulajdonságokban állítsa az SSL Engedélyezve értéket True értékre. Jegyezze fel az SSL URL-címében szereplő információkat. Szüksége lesz rá, amikor konfigurálja az alkalmazás regisztrációját az Azure Portalon.
- Adja hozzá a következő ASP.NET OWIN köztes szoftveres NuGet-csomagokat:
- Microsoft.Owin.Security.ActiveDirectory
- Microsoft.Owin.Security.Cookies
- Microsoft.Owin.Host.SystemWeb
- Microsoft.IdentityModel.Protocol.Extensions
- Microsoft.Owin.Security.OpenIdConnect
- Microsoft.Identity.Client
- A App_Start mappában:
- Hozzon létre egy Startup.Auth.cs nevű osztályt.
- Eltávolítás . App_Start a névtér nevéből.
- Cserélje le az indítási osztály kódját a mintaalkalmazás ugyanazon fájljából származó kódra. Ügyeljen arra, hogy a teljes osztálydefiníciót használja. A definíció a nyilvános osztály indítási osztályáról a nyilvános részleges osztály indítási osztályára változik.
- A Startup.Auth.cs fájlban a hiányzó hivatkozásokat a Visual Studio IntelliSense által javasolt utasítások hozzáadásával oldhatja fel.
- Kattintson a jobb gombbal a projektre, válassza a Hozzáadás, majd az Osztály lehetőséget.
- A keresőmezőbe írja be az OWIN kifejezést. Az OWIN indítási osztály kijelölésként jelenik meg. Jelölje ki, és nevezze el a Startup.cs osztályt.
- A Startup.cs fájlban cserélje le az indításiosztály kódját a mintaalkalmazás ugyanazon fájljának kódjára. Vegye figyelembe, hogy a definíció nyilvános osztály indítási osztályáról nyilvános részleges indítási osztályra változik.
- A Modellek mappában adjon hozzá egy új, MsGraphUser.cs nevű osztályt. Cserélje le az implementációt a mintából származó azonos nevű fájl tartalmára.
- Adjon hozzá egy új MVC 5-vezérlőt – Üres, AccountController nevű példányt. Cserélje le az implementációt a mintából származó azonos nevű fájl tartalmára.
- Adjon hozzá egy új MVC 5-vezérlőt – Üres, UserController nevű példányt. Cserélje le az implementációt a mintából származó azonos nevű fájl tartalmára.
- Adjon hozzá egy új Web API 2-vezérlőt – Üres, SyncController nevű példányt. Cserélje le az implementációt a mintából származó azonos nevű fájl tartalmára.
- A felhasználói felület Nézetek\Fiók mappájában adjon hozzá három Üres (modell nélküli) Nézetpéldányt GrantPermissions, Index és UserMismatch néven. Adjon hozzá egy indexet a Nézetek\Felhasználó mappában. Cserélje le az implementációt a mintából származó azonos nevű fájl tartalmára.
- Frissítse a Shared_Layout.cshtml és a Home\Index.cshtml fájlt a különböző nézetek helyes összekapcsolásához.
A minta üzembe helyezése az Azure-ban
Ez a projekt webalkalmazással és webes API-projektel rendelkezik. Az Azure-webhelyeken való üzembe helyezéshez hajtsa végre az alábbi lépéseket mindegyikhez:
- Azure-webhely létrehozása.
- Tegye közzé a webalkalmazást és a webes API-kat a webhelyen.
- Frissítse az ügyfeleket, hogy az IIS Express helyett a webhelyet hívja meg.
Dotnet-web-daemon-v2 létrehozása és közzététele egy Azure-webhelyen
- Jelentkezzen be az Azure Portalra.
- Válassza az Erőforrás létrehozása lehetőséget a bal felső sarokban.
- Válassza a Web>Web App lehetőséget, majd adjon nevet a webhelynek. Nevezze el például dotnet-web-daemon-v2-contoso.azurewebsites.net.
- Válassza ki az előfizetés, az erőforráscsoport és az App Service-csomag és -hely adatait. Az operációs rendszer Windows, a Publish pedig Code.
- Válassza a Létrehozás lehetőséget , és várja meg, amíg az app service létrejön.
- Amikor megkapja az üzembe helyezés sikeres értesítését , válassza az Ugrás az erőforrásra lehetőséget az újonnan létrehozott app service-hez való ugráshoz.
- A webhely létrehozása után keresse meg az irányítópulton, és válassza ki az App Service Áttekintés képernyőjének megnyitásához.
- Az app service Áttekintés lapján töltse le a közzétételi profilt a Közzétételi profil lekérése hivatkozásra kattintva, és mentse azt. Más üzembehelyezési mechanizmusokat is használhat, például a forrásvezérlőből történő üzembe helyezést.
- Váltson a Visual Studióra, majd:
- Nyissa meg a dotnet-web-daemon-v2 projektet.
- Kattintson a jobb gombbal a projektre a Megoldáskezelő, majd válassza a Közzététel lehetőséget.
- Az alsó sávon válassza a Profil importálása lehetőséget, és importálja a korábban letöltött közzétételi profilt.
- Válassza a Konfigurálás lehetőséget.
- A Csatlakozás ion lapon frissítse a cél URL-címét úgy, hogy a "https" értéket használja. Használja például a következőt
https://dotnet-web-daemon-v2-contoso.azurewebsites.net
: . Válassza a Következő lehetőséget. - A Gépház lapon győződjön meg arról, hogy a szervezeti hitelesítés engedélyezése nincs engedélyezve.
- Válassza a Mentés parancsot. Válassza a Közzététel lehetőséget a főképernyőn.
A Visual Studio közzéteszi a projektet, és automatikusan megnyit egy böngészőt a projekt URL-címére. Ha a projekt alapértelmezett weblapja jelenik meg, a kiadvány sikeres volt.
A Microsoft Entra-bérlőalkalmazás regisztrációjának frissítése dotnet-web-daemon-v2 esetén
- Lépjen vissza a Microsoft Entra felügyeleti központjába, majd válassza ki a dotnet-web-daemon-v2 alkalmazást a Alkalmazásregisztrációk.
- Az alkalmazás hitelesítési oldalán frissítse az előtérbeli kijelentkezés URL-mezőit a szolgáltatás címével. Használja például a következőt
https://dotnet-web-daemon-v2-contoso.azurewebsites.net/Account/EndSession
: . - A Védjegyzés menüben frissítse a kezdőlap URL-címét a szolgáltatás címére. Használja például a következőt
https://dotnet-web-daemon-v2-contoso.azurewebsites.net
: . - Save the configuration.
- Adja hozzá ugyanazt az URL-címet a Hitelesítési>átirányítási URI-k menü értékeinek listájához. Ha több átirányítási URL-cím is van, győződjön meg arról, hogy van egy új bejegyzés, amely az App Service URI-ját használja az egyes átirányítási URL-címekhez.
Clean up resources
Ha már nincs rá szükség, törölje az alkalmazás regisztrálása lépésben létrehozott alkalmazásobjektumot. Az alkalmazás eltávolításához kövesse az Ön vagy a szervezete által létrehozott alkalmazás eltávolítása című témakör utasításait.
Támogatás kérése
A Microsoft Q&A használatával támogatást kérhet a közösségtől.
Először tegye fel kérdéseit a Microsoft Q&A-ról, és tallózással ellenőrizze, hogy valaki feltette-e korábban a kérdését.
Győződjön meg arról, hogy kérdései vagy megjegyzései címkézve vannak az , azure-ad-msal
és dotnet-standard
a ." címkévelazure-ad-adal-deprecation
.
Ha hibát talál a mintában, forduljon a GitHub-problémákhoz.
Ha hibát talál a MSAL.NET, forduljon MSAL.NET GitHub-problémákhoz.
Javaslat megadásához nyissa meg a Felhasználói hang lapot.
További lépések
További információ a Microsoft Identitásplatform használatával védett webes API-k eléréséhez használható démonalkalmazások készítéséről: