Integrálja a Microsoft 365 bejelentkezést a Flask Web Apps szolgáltatásba

Integrálja a Microsoft 365 bejelentkezést a Flask Web Apps szolgáltatásba
Integrálja a Microsoft 365 bejelentkezést a Flask Web Apps szolgáltatásba

A Microsoft 365 hitelesítés beállítása

Az oktatási célú webalkalmazások fejlesztésekor az intézményi erőforrások, például a Microsoft 365 e-mail integrálása javíthatja a felhasználói élményt és egyszerűsítheti a bejelentkezési folyamatokat. Ez az integráció különösen akkor hasznos, ha az alkalmazásoknak igazodniuk kell az egyetemi informatikai szabályzatokhoz, ami korlátozhatja az alkalmazások egyetemi hitelesítő adatokkal történő létrehozását.

Ebben a forgatókönyvben praktikus megoldás egy személyes Microsoft Azure-fiók használata az alkalmazás beállításához. Felmerülhetnek azonban kihívások, például a bérlői korlátozásokkal kapcsolatos problémák, amikor egyetemi e-mail-címmel próbálnak bejelentkezni. Ez szükségessé teszi a különböző bérlők felhasználói fiókjainak kezelését az alkalmazás funkcióinak vagy biztonságának veszélyeztetése nélkül.

Parancs Leírás
oauth.remote_app() Inicializál egy új távoli alkalmazáspéldányt az OAuth számára; az OAuth-szolgáltatókkal való kommunikáció kezelésére szolgál.
flask_oauthlib.client.OAuth Flask-bővítmény az OAuth-szolgáltatók integrálásához, megkönnyítve az OAuth-protokollokon keresztüli hitelesítést.
authorized_response() A Flask-OAuthlib része, ez a módszer lekéri az engedélyezett OAuth-választ a visszahívási függvénytől.
session['oauth_token'] Az OAuth-jogkivonat munkamenetben való tárolására szolgál későbbi eléréshez, kritikus a felhasználói munkamenetek és a hitelesítési állapot kezeléséhez.
microsoft.authorize() Olyan módszer, amely átirányít az OAuth-szolgáltató engedélyezési URL-címére, ahol a felhasználó engedélyezheti az alkalmazást.
url_for() A Lombik segédfunkciója, amely végpontot generál egy adott nézetfüggvényhez. Hasznos lehet URL-ek generálásához átirányításokhoz.

A lombik integrációjának magyarázata a Microsoft 365 hitelesítéssel

A frontend és a backend szkriptek együttesen megkönnyítik a Microsoft 365 bejelentkezés Flask webalkalmazásba való integrálását. Az előtérben egy egyszerű HTML-oldalon található egy gomb, amelyre kattintáskor egy JavaScript-függvény aktiválódik, amely átirányítja a felhasználót a háttérrendszerre hitelesítés céljából. Ez a folyamat azzal kezdődik, loginWithMicrosoft() funkció, amely megváltoztatja az ablak helyét a Flask által kezelt háttérútvonalra. A háttérszkript használja Flask és Flask-OAuthlib az OAuth folyamat kezeléséhez a Microsoft identitásplatformjával.

A háttérben a oauth.remote_app() parancs kapcsolatot létesít a Microsoft OAuth-végpontjaival az alkalmazás hitelesítő adatai segítségével. A microsoft.authorize() funkció elindítja a hitelesítési folyamatot úgy, hogy átirányítja a felhasználót a Microsoft engedélyezési oldalára. Miután a felhasználó bejelentkezik és megadja a szükséges engedélyeket, az OAuth-szolgáltató visszaküldi őket az alkalmazásnak a következőben megadott visszahívási URL-címen. url_for('authorized'). A authorized_response() metódus feldolgozza ezt a visszahívást, lekérve a hitelesítés megerősítéséhez és a felhasználói munkamenet fenntartásához szükséges hozzáférési tokent.

Frontend Microsoft 365 hitelesítési felület

A frontendhez használt HTML és JavaScript

<html>
<head>
<title>Login with Microsoft</title>
</head>
<body>
<button onclick="loginWithMicrosoft()">Sign In with Microsoft</button>
<script>
function loginWithMicrosoft() {
    window.location.href = '/auth/microsoft';
}
</script>
</body>
</html>

Háttérbeli hitelesítési folyamat a Microsoft 365-tel

A háttérben használt Python és Flask

from flask import Flask, redirect, url_for, session
from flask_oauthlib.client import OAuth
import os

app = Flask(__name__)
app.secret_key = 'development'
oauth = OAuth(app)

microsoft = oauth.remote_app(
    'microsoft',
    consumer_key='YOUR_APP_ID',
    consumer_secret='YOUR_APP_SECRET',
    request_token_params={'scope': 'User.Read'}
    base_url='https://graph.microsoft.com/v1.0/',
    request_token_url=None,
    access_token_method='POST',
    access_token_url='https://login.microsoftonline.com/common/oauth2/v2.0/token',
    authorize_url='https://login.microsoftonline.com/common/oauth2/v2.0/authorize'
)

@app.route('/')
def index():
    return '<h1>Welcome to the Flask App</h1>' + '<a href="/login">Login with Microsoft</a>'

@app.route('/login')
def login():
    return microsoft.authorize(callback=url_for('authorized', _external=True))

@app.route('/login/authorized')
def authorized():
    response = microsoft.authorized_response()
    if response is None or response.get('access_token') is None:
        return 'Access denied: reason={0} error={1}'.format(
            request.args['error'], request.args['error_description'])
    session['oauth_token'] = (response['access_token'], '')
    return 'Logged in as id={0}'.format(session['oauth_token'])

@microsoft.tokengetter
def get_microsoft_oauth_token():
    return session.get('oauth_token')

if __name__ == '__main__':
    app.run(debug=True)

Speciális beállítások a Microsoft 365 hitelesítéshez Lombikban

A Microsoft 365 bejelentkezés egyetemi e-mail használata nélkül történő integrálásával kapcsolatos probléma megoldásához elengedhetetlen, hogy megértse a több-bérlős alkalmazások koncepcióját az Azure-ban. A többbérlős alkalmazás lehetővé teszi a felhasználók számára, hogy több Azure AD-bérlőből hozzáférjenek az alkalmazáshoz, amely ideális olyan egyetemi beállításokhoz, ahol a hallgatók különböző tartományi e-mail-címekkel rendelkezhetnek. Ehhez a beállításhoz be kell állítani az Azure-alkalmazást, hogy elfogadja a bejelentkezéseket bármely Azure AD-bérlőtől, ami úgy történik, hogy az alkalmazás jegyzékében a „signInAudience” beállítást „AzureADMultipleOrgs” értékre állítja.

Ez a konfigurációmódosítás lehetővé teszi a hallgatók számára, hogy egyetemi e-mailjeiket használják, még akkor is, ha az alkalmazást eredetileg személyes e-mail-címmel hozták létre. A kezelést is leegyszerűsíti, mivel a fejlesztőnek nem kell minden felhasználót külön-külön hozzáadnia a bérlőhöz. Ez a megközelítés kihasználja az Azure identitáskezelési szolgáltatásainak rugalmasságát, hogy szélesebb körű hozzáférhetőséget és zökkenőmentes integrációt biztosítson az oktatási alkalmazásokban.

Gyakori kérdések a Microsoft 365 Flask Apps integrációjával kapcsolatban

  1. Mi az Azure AD több-bérlős hitelesítés?
  2. Az Azure AD több-bérlős hitelesítése lehetővé teszi, hogy az alkalmazások több Azure AD-bérlőből is kiszolgálják a felhasználókat, nem csak attól, ahol az alkalmazást regisztrálták.
  3. Hogyan konfigurálhatom a Flask alkalmazást az Azure több bérlőhöz?
  4. Módosítania kell az alkalmazásregisztrációt az Azure-ban, hogy elfogadja a bejelentkezéseket bármely Azure AD-bérlőtől a „signInAudience” beállításával a jegyzékben.
  5. Milyen előnyei vannak a használatának oauth.remote_app() a lombikban?
  6. Ez a funkció leegyszerűsíti az OAuth-szolgáltatókhoz való csatlakozást az OAuth-folyamat kezelésével, beleértve a token lekérését és tárolását.
  7. Miért kaphat egy felhasználó hibaüzenetet arról, hogy fiókja nem létezik a bérlőben?
  8. Ez általában akkor fordul elő, ha az alkalmazás nincs beállítva több bérlős hozzáférésre, vagy ha a felhasználó nincs regisztrálva külső felhasználóként a bérlőben.
  9. Hogyan kezelhetem a hibákat a Lombik hitelesítési folyamata során?
  10. Végezze el a hibakezelést a authorized_response() funkció a hibák, például a hozzáférési megtagadások vagy a hiányzó tokenek elfogására és reagálására.

Utolsó gondolatok a Microsoft 365 hitelesítési integrációról

Összefoglalva, a Microsoft 365 bejelentkezés Flask-alkalmazásokba való integrálása egyetemi e-mail-cím használata nélkül magában foglalja egy Azure-alkalmazás beállítását személyes hitelesítő adatokkal, és konfigurálja azt a több-bérlős hozzáféréshez. Ez a megközelítés nemcsak megkerüli azokat a korlátozásokat, amelyeket az egyetemek a hivatalos e-mailek alkalmazás-létrehozásához szabhatnak, hanem leegyszerűsíti a különböző bérlők felhasználóinak bejelentkezési folyamatát is. Az OAuth bevált gyakorlatainak követésével és a lehetséges hibák hatékony kezelésével a fejlesztők zökkenőmentes és biztonságos felhasználói élményt nyújthatnak.